假设你正在爬楼梯,需要n阶你才能到达楼顶。每次你可以爬1或2个台阶,你有多少种不同的⽅法可。。。
⽅法⼀:暴⼒法
算法
在暴⼒法中,我们将会把所有可能爬的阶数进⾏组合,也就是 1 和 2 。⽽在每⼀步中我们都会继续调⽤ climbStairsclimbStairs 这个函数模拟爬 11 阶和 22 阶的情形,并返回两个函数的返回值之和。
public class Solution {
public int climbStairs(int n) {
climb_Stairs(0, n);
}
public int climb_Stairs(int i, int n) {
if (i > n) {
return 0;
圣诞小公主}
if (i == n) {
return 1;
}
return climb_Stairs(i + 1, n) + climb_Stairs(i + 2, n);
吉吉影音你懂的}
}
网速卡⽅法⼆:斐波那契数
public class Solution {
public int climbStairs(int n) {
if (n == 1) {
return 1;
康王谷}
矩形的判定定理int first = 1;
int cond = 2;
温哥华留学for (int i = 3; i <= n; i++) {
int third = first + cond;
属什么生肖最好命
first = cond;
cond = third;
}
马冬晗
return cond;
}
}