剑指offer-7,8,9,10-斐波那契数列

斐波那契数列

http://www.nowcoder.com/questionTerminal/c6c7742f5ba7442aada113136ddea0c3

思路

7,8,9,10的思路都是一样的
F(n)=F(n-1)+F(n-2)

  • 递归:占内存,容易栈溢出
  • 动态规划,一维数组保存前面所有状态,又由于本题只与前两个状态有关,所以用两个变量保存前两个状态即可

第7题

动态规划

public class Solution {
    public int Fibonacci(int n) {
        if(n<=0){
            return 0;
        }
        if(n==1||n==2){
            return 1;
        }
        int p=1,q=1;
        for(int i=3;i<=n;i++){
            q=p+q;
            int temp=p;
            p=q;
            q=temp;
        }
        return p;
    }
}

递归,本题n较小,也OK

public class Solution {
    public int Fibonacci(int n) {
        if(n==2){
            return 1;
        }
        if(n==1||n==0){
            return 0;
        }
        if(n<=0){
            return 0
        }
        return Fibonacci(n-1)+Fibonacci(n-2);
    }
}

第8题 青蛙跳台阶,跳1,2步台阶

public class Solution {
    public int JumpFloor(int target) {
        if(target<=1){
            return 1;
        }
        int[] ints=new int[target+1];
        ints[0]=1;
        ints[1]=1;
        for(int i=2;i<ints.length;i++){
            ints[i]=ints[i-1]+ints[i-2];
        }
        return ints[target];
    }
}

第9题 变态跳台阶,可以跳1,2,3...n步台阶

F(n)=F(n-1)+...+F(0),F(0)=1,F(1)=1
进一步归纳,可以发现,F(n)=2*F(n-1),n>=2;

public class Solution {
    public int JumpFloorII(int target) {
        if(target<0){
            return 0;
        }
        if(target==0||target==1){
            return 1;
        }
        int sum=1;
        for(int i=2;i<=target;i++){
            sum=sum*2;
        }

        return sum;
    }
}

第10题 矩形覆盖

public class Solution {
    public int RectCover(int target) {
        if(target<=2){
            return target;
        }
        int[] res=new int[target+1];
        res[0]=0;
        res[1]=1;
        res[2]=2;
        for(int i=3;i<res.length;i++){
            res[i]=res[i-1]+res[i-2];
        }
        return res[target];
    }
}
剑指offer与数据结构 文章被收录于专栏

本专栏包括剑指offer题目和一些刷题用的数据结构,单调栈,树状数组,差分数组,后面还会更新红黑树等较为复杂的数据结构

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务