0%

leetcode 70 Solution

代码解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.demo.s70;

/**
* 爬楼梯
* 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
*
* 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
*/
public class Solution {
public int climbStairs(int n) {
//倒推 func(n) = func(n-1) + func(n-2)
//边界 func(3) = func(2) + func(1)
// func(2) = 2
// func(1) = 1
// func(0) = 0
int p = 0;
int q = 0;
int r = 1;
for(int i =0; i< n; i++) {
p = q;
q = r;
r = p + q;
}
return r;
}
}