方法一(循环):
public class Solution {
public int fibonacci(int n) {
return getValue(n);
}
public int getValue(int n) {
if (n <= 2) {
return n-1;
}
int sum1 = 0;
int sum2 = 1;
for (int i = 3; i<= n ; i++ ) {
sum2 += sum1;
sum1 = sum2 -sum1;
}
return sum2;
}
}
方法二(递归):
public class Solution {
public int fibonacci(int n) {
return getValue(n);
}
public int getValue(int n) {
if (n <= 2) {
return n-1;
}
return getValue(n-1) + getValue(n-2);
}
}
n的值较大时,循环方法的速度更快