class Solution {
public int rob(int[] nums) {
int len = nums.length;
if(len<=1) return nums[0];
int[] f = new int[len+1];
int[] d = new int[len+1];
f[1]=nums[0];
d[2]=nums[1];
for(int i=2; i<len; i++){
f[i] = Math.max(f[i-1],f[i-2]+nums[i-1]);
}
for(int i=3; i<=len; i++){
d[i] = Math.max(d[i-1],d[i-2]+nums[i-1]);
}
return Math.max(d[len],f[len-1]);
}
}
【2022初春】【LeetCode】213. 打家劫舍 II
最新推荐文章于 2024-05-11 19:07:08 发布