题目来源:力扣《剑指Offer》第二版
完成时间:2022/07/24
10- I. 斐波那契数列
我的题解
class Solution {
public:
int fib(int n) {
if(n == 0 || n == 1){
return n;
}
int a = 0,b = 1,count = 1;
while(count != n){
int res = (a + b) % 1000000007;
a = b;
b = res;
count++;
}
return b;
}
};
10- II. 青蛙跳台阶问题
我的题解
这道题其实和斐波那契数列几乎一模一样,一开始我没想出来,看了书上的解法。每次跳台阶时可以选择跳1级还是2级,所以n级台阶的跳法就是 f(n-1) + f(n-2) 种。除了初始的f(0)不一样以外,其他全部套用上一题即可。
class Solution {
public:
int numWays(int n) {
if(n == 0 || n == 1){
return 1;
}
int a = 1,b = 1,count = 1;
while(count != n){
int res = (a + b) % 1000000007;
a = b;
b = res;
count++;
}
return b;
}
};