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

不能连续吃草的牛

https://www.nowcoder.com/practice/64d9400c321042acb754a9455852a8d7

知识点:

动态规划

分析:

状态表示:

1.f[i]表示吃第i块草的时候的最高饱腹感值。

3.属性:max,最高/最大

状态计算:

f[i]两种情况:

1.如果吃当前i块草的话,那么f[i] = f[i-2] + nums[i] 相邻的草不可以吃

2.如果不吃当前草的话,那么f[i]= f[i-1]

所以f[i] = max(f[i-2] + nums[i], f[i]= f[i-1])

编程语言:

C++

完整代码:

    int eatGrass(vector<int>& nums) {
        if (nums.size() == 0) return 0;
        if (nums.size() == 1) return nums[0];
        vector<int> f(nums.size());
        f[0] = nums[0];
        f[1] = max(nums[0], nums[1]);
        for (int i = 2; i < nums.size(); i++) {
            dp[i] = max(f[i - 2] + nums[i], f[i - 1]);
        }
        return f[nums.size() - 1];
    }

全部评论

相关推荐

吴offer选手:网易这个双机位麻烦死了
投递网易等公司10个岗位
点赞 评论 收藏
分享
08-23 21:29
已编辑
吉林师范大学 硬件开发
牛马人的牛马人生:前期急啥 前期神仙打架高端局ssp的高级大offer 都是佬们的战争
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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