【剑指Offer】10- II. 青蛙跳台阶问题

https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/
int numWays(int n){
    if(n==0){  // 如果台阶0个,返回空
        return 1; 
    }
    else if(n==1){ // 如果台阶1个,返回1
        return 1;
    }
    else if(n==2){
        return 2;  // 两个台阶,2种跳法
    }
    int a[n+1]; // 定义一个数组,n+1的长度(计算机中数组从0开始)
    a[0]=1,a[1]=1,a[2]=2;  //斐波那契数列,第一个1,第二个1,第三个2,先赋值
    
    int i; //定义临时变量
    for(i=3;i<=n;i++){ //从第三个开始,每个数等于前两个数之和(根据举例与推理得出)
        a[i]=(a[i-1]+a[i-2])%1000000007; //每个数等于前两个数相加
    }
return a[n];//最终返回数组
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容