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]); }