题解 | #贪吃牛#

贪吃牛

https://www.nowcoder.com/practice/ae6261c872724fda8913b0377e85f6ab

考察的知识点:动态规划;

解答方法分析:

  1. 定义状态:dp[i]表示吃完i块草料的不同方式数量。
  2. 初始化状态:dp[0] = 1,dp[1] = 1,因为当n=0时,牛已经吃完了,所以只有一种方式。当n=1时,牛只能吃1块草料,也只有一种方式。
  3. 状态转移方程:根据题目描述,牛可以选择吃1块或者2块草料,所以dp[i] = dp[i - 1] + dp[i - 2],即前一次的方式加上前两次的方式之和。
  4. 计算结果:使用一个循环计算dp数组的值,最终结果就是dp[n]。

所用编程语言:C++;

完整编程代码:↓

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param n int整型
     * @return int整型
     */
    int eatGrass(int n) {
        vector<int> dp(n + 1, 0);
        dp[0] = 1;
        dp[1] = 1;
        for (int i = 2; i <= n; i++) {
            dp[i] = dp[i - 1] + dp[i - 2];
        }
        return dp[n];
    }
};

全部评论

相关推荐

09-14 20:51
四川大学 Java
慢热的鲸鱼在学习:985加粗就行了,第二个项目来不及准备也没事,省的写了问你你还不会。你只需准备面试八股和项目场景,剩下的交给985。即使面不过也没事,面试经验是最重要的,你现在不缺时间
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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