[問題の説明]
我々は、すべての今、フィボナッチ数、および整数を入力するように要求することを知っnは、あなたのアイテムの出力n番目のフィボナッチ数フィボナッチ数列(0から、最初の0は0です)。
N <= 39
[思考]の答え
1.再帰的(インタビュー回避)はO(n ^ 2)
public class Solution {
public int Fibonacci(int n) {
if (n == 0) return 0;
if (n == 1) return 1;
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}
2.一般的な循環O(n)の空間計算量:O(n)は、
public class Solution {
public int Fibonacci(int n) {
int ans[] = new int[40];
ans[0] = 0;
ans[1] = 1;
for(int i=2;i<=n;i++){
ans[i] = ans[i-1] + ans[i-2];
}
return ans[n];
}
}
3.最適化サイクル(N)スペースOの複雑:O(1)
5. 3. 1. 1 2 0 8
F(6)= F(5)+ F(4)、わずかF(5)、F(4セーブ ) F(5)-f(3)の結果は、
= 8 5を計算します3は、唯一の3が5-2から派生し、5を保存する必要があります
public class Solution {
public int Fibonacci(int n) {
int a = 0, b = 1;
for (int i = 1; i <= n - 2; i++) {
a = a + b;
b = a - b;
}
return a;
}
}
[概要]
- エクスポートを定義するための再帰的な必要性は、パラメータからの移行が出口に渡さ
- 時間の複雑さと空間の複雑さを考慮すると