public int eatGrass (int[] nums) {
// write code here
if(nums.length<2) return nums[0];
int[] dp=new int[nums.length+1];
int[] dp1=new int[nums.length+1];
//如果吃了第一块草,最后一块草就不能吃了
dp[0]=0;
dp[1]=nums[0];
for(int i=3;i<nums.length;i++){
dp[i]=Math.max(dp[i-2],dp[i-2]+nums[i-1]);
}
//如果吃了第二块草,第一块草不能吃,就删了第一块,当作从第二块开始就行
dp1[2]=nums[1];
for(int i=3;i<=nums.length;i++){
dp1[i]=Math.max(dp1[i-1],dp1[i-2]+nums[i-1]);
}
return Math.max(dp[nums.length-1],dp1[nums.length]);
}



京公网安备 11010502036488号