题解 | #打家劫舍(二)#
打家劫舍(二)
https://www.nowcoder.com/practice/a5c127769dd74a63ada7bff37d9c5815
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public int rob (int[] nums) {
int []nums1 = Arrays.copyOfRange(nums, 0, nums.length - 1); //0-n-1
int []nums2 = Arrays.copyOfRange(nums, 1, nums.length); //1-n
int res1=getMoney(nums1);
int res2 = getMoney(nums2);
return res1>res2?res1:res2;
}
public int getMoney(int [] nums) {
int dp []= new int [nums.length+1];
dp[0]=0;
dp[1]=nums[0];
if(nums.length==0)return dp[0];
if(nums.length==1)return dp[1];
for(int i=2;i<dp.length;i++){
dp[i]=Math.max(dp[i-1],dp[i-2]+nums[i-1]);
}
return dp[nums.length];
}
}
