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

不能连续吃草的牛

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

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 14:11
很喜欢小米的新车,校招薪资每月22k,攒多久能买?
测试糕手手:别看工资,先看现金流存款。有50W存款以上再考虑,车是消耗品,选适合自己的重要。你有钱就当我没说过
点赞 评论 收藏
分享
认真搞学习:这么良心的老板真少见
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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