zoukankan      html  css  js  c++  java
  • day08

    青蛙跳台阶问题

    问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。

    //青蛙跳台阶问题
    package day08;
    public class test01 {
        public int numWays(int n) {
            //动态规划
            //思路分析:借助辅助变量sum,利用双指针,a、b。a = b向后移动a(a从0移动到n的位置停下,所以最后返回a)
            // b = sum向后移动b(为了同步)
    //        int a=1,b=1,sum;
    //        for (int i=0;i<n;i++){
    //            sum=(a+b)% 1000000007;
    //            a=b;
    //            b=sum;
    //        }
    //        return a;
    
            //递归
            //创建数组res[n + 1],(一定是n + 1,否则当n = 0的时候访问res[0]会出现越界报错
            // 让n = 0和n = 1赋值为1存入数组,从第三个元素(下标为2)开始递归,最后返回res[n]
            int[] res = new int[n+1];
            if (n>=0)
                res[0]=1;
            if (n>=1)
                res[1]=1;
            for (int i=2;i<=n;i++){
                res[i] += (res[i - 1] + res[i - 2]) % 1000000007;
            }
            return res[n];
     }
    }
  • 相关阅读:
    《构建之法阅读笔记02》
    《人月神话阅读笔记01》
    第四周学习进度条
    子数组2
    敏捷开发方法综述
    子数组1
    第三周学习进度条
    四则运算3
    第二周学习进度条
    四则运算4
  • 原文地址:https://www.cnblogs.com/quanmeng/p/12747918.html
Copyright © 2011-2022 走看看