LeetCode--(动态规划)母牛生产

题目大意

假设农场中成熟的母牛每年都会生 1 头小母牛,并且永远不会死。第一年有 1 只小母牛,从第二年开始,母牛开始生小母牛。每只小母牛 3 年之后成熟又可以生小母牛。给定整数 N,求 N 年后牛的数量。

解题思路

该题利用动态规划来解。建立动态方程第i年的母牛数等于第i-1年的母牛数加上三年前的母牛数,因为三年前的小牛今年都会生产一头小牛,每年生一个。所以动态方程为:

dp[i]=dp[i-1]+dp[i-3]

代码实现

public  int cowNums(int n){
    int []dp=new int [n+1];
    if(n<=3){
       return n;
     }
    dp[0]=0;
    dp[1]=1;
    dp[2]=2;
    dp[3]=3;
    for(int i=4;i<=n;i++){
        dp[i]=dp[i-1]+dp[i-3];
    }
    return dp[n];
}

版权声明:本文为m0_52675592原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。