题解 | #不能连续吃草的牛#
不能连续吃草的牛
https://www.nowcoder.com/practice/64d9400c321042acb754a9455852a8d7
题目考察的知识点
考察动态规划的应用
题目解答方法的文字分析
分析题目,可以使用动态规划来解决。设置dp数组来表示最高的饱腹感,即dp[i]表示吃到第i块草的时候能获得的最高的饱腹感的值。设置初始值之后,从i=2开始之后,i位置的dp值由i-1吃草i位置不吃草以及i-2位置吃草加上i位置吃草两种情况取最高值而决定,即代码19行。最后返回最后一个dp数组的值即可。
本题解析所用的编程语言
使用Java代码解答
完整且正确的编程代码
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public int eatGrass (int[] nums) {
// write code here
if(nums.length==1) return nums[0]; //特殊情况处理
int[] dp = new int[nums.length]; //dp[i]表示吃到第i块草的时候能获得的最高的饱腹感的值
dp[0] = nums[0];
dp[1] = Math.max(nums[0],nums[1]);
for(int i=2; i<nums.length; i++){
dp[i] = Math.max(dp[i-2]+nums[i],dp[i-1]);
}
return dp[nums.length-1];
}
}
滴滴公司福利 1726人发布