剑指 Offer 10- II. 青蛙跳台阶问题 - 力扣(LeetCode) (leetcode-cn.com)
public int numWays(int n) {
return getStep(n);
}
public int getStep(int n){
if(n<2) return 1;
int a=1;
int b=1;
for(int i=2;i<=n;i++){
a=a+b;
b=a-b;
a=a>=1000000007?(a-1000000007):a;
}
return a;
}
首先讲什么是递归:所谓递归,就是会在函数内部代码中,调用这个函数本身,所以,我们必须要找出递归的结束条件,不然的话,会一直调用自己,进入无底洞。
在刚才这道题里,i<=n就是我们的条件。
最关键的:递归的关键是,我们的答案可以基于之前的答案做简单运算,得到新的答案。
关键:找出函数的等价关系式。
像裴波那契数列就是一个很常见的递归。
详解递归思想_dreamispossible的博客-CSDN博客_递归思想