牛客題霸NC65斐波那契數列Java題解
阿新 • • 發佈:2020-11-25
牛客題霸NC65斐波那契數列Java題解
方法1:動態規劃
解題思路:當n==0時,返回0,當0<n<=2時,返回1。
定義一個數組res用來存放斐波那契數列。斐波那契數列的的當前項只與它的前兩項有關。
所以,利用for迴圈,求得斐波那契數列的每一項並儲存在陣列res中,最後返回res[n],就是斐波那契數列的第n項。
public class Solution { public int Fibonacci(int n) { if(n==0){ return 0; } if(n<=2){ return 1; } int[] res = new int[n+1]; //用於儲存斐波那契數列 res[0] = 0; res[1] = 1; for(int i=2;i<=n;i++){ res[i]= res[i-1]+res[i-2]; //當前節點值等於前兩項的和 } return res[n]; } }
方法2:遞迴
解題思路:當n==0時,返回0,當0<n<=2時,返回1,當n>2時,返回Fibonacci(n-1)+Fibonacci(n-2)。
public class Solution { public int Fibonacci(int n) { if(n==0){ return 0; } if(n<=2){return 1; } return Fibonacci(n-1)+Fibonacci(n-2); //當前節點值等於前兩項的和 } }