從Wiki的說明:
- (n≧2)
所以先用Recursion解,結果Time Limit Exceeded了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| class Solution{
public:
/**
* @param n: an integer
* @return an integer f(n)
*/
int fibonacci(int n) {
// write your code here
if(n < 3)
return n - 1;
else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
};
|
只好換成Iteration囉。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | class Solution{ public: /** * @param n: an integer * @return an integer f(n) */ int fibonacci(int n) { // write your code here if(n < 3) return n - 1; else { int i; int* f = new int[n]; f[0] = 0; f[1] = 1; i = 2; while(i < n) { f[i] = f[i - 1] + f[i - 2]; i++; } return f[n-1]; } } }; |
沒有留言:
張貼留言