斐波那契数列

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39

这个题我熟。题解也没啥好办法,最好的也就是时间复杂度O(n),空间复杂度O(1),和我这个解法一样

public class Solution {
    public int Fibonacci(int n) {
        /*if(n==0){
            return 0;
        }else if(n==1){
            return 1;
        }else if(n==2){
            return 1;
        }
        简化完就是:*/
        if(n<3)
            return n;
        int[] count=new int[3];
        count[0]=1;
        count[1]=1;
        count[2]=2;
        for(int i=2;i<n;i++){
            count[i%3]=count[(i+1)%3]+count[(i+2)%3];
        }
        return count[(n-1)%3];
    }
}

要注意的点就是,java中数组的声明:int[] test=new int[size];int后面的方括号不能忘。还有就是这种方法最重要的就是别混,到底是i%3还是(i+1)%3,(i+2)%3,最好先自己选一个数盘算盘算

posted @ 2020-02-27 21:12  别再闹了  阅读(52)  评论(0)    收藏  举报