动态规划的题目,新建另一个数组memo用来保存从 i 到 数组末尾能取到的最大值,直到memo[0]
分别比较取 i 或者不取 i 而取 i+1 时候的值,进行选择
class Solution {
public int rob(int[] nums) {
int length = nums.length;
if(length == 0)return 0;
int[] memo = new int[length];
memo[length-1] = nums[length-1];
for(int i = length - 2; i >= 0; i--)
{
memo[i] = Math.max(nums[i] + (i+2>=length?0:memo[i+2]),nums[i+1] + (i+3>=length?0:memo[i+3]));
}
return memo[0];
}
}