【发布时间】:2017-01-25 07:01:50
【问题描述】:
我在 leet 代码上尝试 House Robber 问题(dp 问题)。 来自用户 GYX 的这个解决方案看起来简单而优雅。
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];
}
但我就是无法理解这个逻辑。请帮助我了解逻辑以及如何解决此类问题?
【问题讨论】:
标签: algorithm dynamic-programming