LeetCode70 :青蛙跳台阶-递归思想

153 阅读1分钟

剑指 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博客_递归思想