我試圖House Robber問題(dp問題)上的代碼。 來自用戶GYX的解決方案看起來簡單而優雅。Leetcode房子劫匪
int rob(vector<int>& num) {
int n = num.size();
if (n==0) return 0;
vector<int> result(n+1,0);
result[1] = num[0];
for (int i=2;i<=n;i++){
result[i] = max(result[i-1],result[i-2]+num[i-1]);
}
return result[n];
}
但我只是無法讓我的頭在邏輯。請幫助我理解邏輯,以及如何解決這樣的問題?