题解 | #不能连续吃草的牛#

不能连续吃草的牛

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

全部评论

相关推荐

09-18 20:41
阿里巴巴_后端
要个offer怎么这...:哈哈哈哈哈哈,我也拿了0x10000000个offer,秋招温啦啦啦,好开心
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务