private int robSub(int[] nums, int lo, int hi) {
int curMax = 0, preMax = 0;
for (int i = lo; i < hi; i++ ){
int t = curMax;
curMax = Math.max(preMax + nums[i], curMax);
preMax = t;
}
return curMax;
}
public int rob(int[] nums) {
if (nums == null || nums.length == 0) return 0;
if (nums.length == 1) return nums[0];
return Math.max(robSub(nums, 0, nums.length-1), robSub(nums, 1, nums.length));
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-8826.html