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

不能连续吃草的牛

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

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务