zoukankan      html  css  js  c++  java
  • LeetCode——70 Java之爬楼梯

    题目要求:

    假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

    每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

    注意:给定 n 是一个正整数。

    示例 1:

    输入: 2
    输出: 2
    解释: 有两种方法可以爬到楼顶。
    1.  1 阶 + 1 阶
    2.  2 阶

    示例 2:

    输入: 3
    输出: 3
    解释: 有三种方法可以爬到楼顶。
    1.  1 阶 + 1 阶 + 1 阶
    2.  1 阶 + 2 阶
    3.  2 阶 + 1 阶

    示例 3:

    输入: 4
    输出: 5
    解释: 有三种方法可以爬到楼顶。
    1.  1 阶 + 1 阶 + 1 阶 + 1 阶
    2.  1 阶 + 2 阶 + 1 阶
    3.  2 阶 + 1 阶 + 1 阶
    4. 2 阶 + 2 阶
    5. 1 阶 + 1 阶 + 2 阶
    思路:
    看到题目不要盯着题目空想,拿起笔在纸上想想,先列出n=1,n=2,n=3的情况,看不出来还可以继续写n=4的情况,你就会发现规律,最后一次爬的楼梯层数是由前面n-1层决定的。最后一次爬楼梯,如果爬
    的层数是1层,那么有f(n-1)种方法,如果最后一次爬楼梯的层数是2层,那么有f(n-2)种方法。于是根据这种思想就可以写代码了。
    class Solution {
        public int climbStairs(int n) {
            int f[]=new int[n+1];
            for(int i=1;i<n+1;i++){
              if(i<3){
                 f[i]=i;
              }else{          
                 f[i]=f[i-1]+f[i-2];                  
              }
            }
            return f[n];       
        }
    }
    
    
    
     
  • 相关阅读:
    vs2010创建文件夹
    strlen源码,远没有想象中的那么简单、、、、
    排序
    字符数组,字符指针,sizeof,strlen总结
    QT中的QInputDialog的小例子
    QT实现启动画面
    QT中Dialog的使用

    QT中的文件浏览
    Python日期操作
  • 原文地址:https://www.cnblogs.com/xiayanjiao/p/10649183.html
Copyright © 2011-2022 走看看