java刷题--213打家劫舍II
Posted Anrys
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java刷题--213打家劫舍II相关的知识,希望对你有一定的参考价值。
题目
代码
class Solution {
public int rob(int[] nums) {
int length = nums.length;
if (length == 1) return nums[0];
else if (length == 2) return Math.max(nums[0], nums[1]);
return Math.max(robRange(nums, 0, length - 2), robRange(nums, 1, length - 1));
}
public int robRange(int[] nums, int start, int end) {
int[] dp = new int[nums.length];
dp[start] = nums[start];
dp[start+1] = Math.max(nums[start],nums[start+1]);
int max = dp[start];
for(int i=start+2; i<=end;i++) {
dp[i] = Math.max(dp[i-2]+nums[i],dp[i-1]);
max = Math.max(dp[i],max);
}return max;
}
}
结果
以上是关于java刷题--213打家劫舍II的主要内容,如果未能解决你的问题,请参考以下文章