耶耶耶耶耶 发表于 2024-6-21 05:31:41

算法:70. 爬楼梯

70. 爬楼梯
假设你正在爬楼梯。须要 n 阶你才气到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

示例 1:
<strong>输入:</strong>n = 2
<strong>输出:</strong>2
<strong>解释:</strong>有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶 示例 2:
<strong>输入:</strong>n = 3
<strong>输出:</strong>3
<strong>解释:</strong>有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶

提示:


[*]1 <= n <= 45
解法1: 

class Solution {
    public int climbStairs(int n) {
      int p = 0, q = 0, r = 1;
      for (int i = 1; i <= n; ++i) {
            p = q;
            q = r;
            r = p + q;
      }
      return r;
    }
}
                //i p q r
                //1 0 0 1
                //2 0 1 1
                //3 1 1 2
                //4 1 2 3
                //5 2 3 5
                //6 3 5 8
                //7 5 8 13 解法2: 

class Solution {
    public int climbStairs(int n) {
      int[] dp = new int;
      dp = 1;
      dp = 1;
      for(int i = 2; i <= n; i++) {
            dp = dp + dp;
      }
      return dp;
    }
}
                //i i-2 i-1 dp
                //0 0 0 1
                //1 0 1 1
                //2 1 1 2
                //3 1 2 3
                //4 2 3 5
                //5 3 5 8
                //6 5 8 13

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 算法:70. 爬楼梯