斐波那契数列
题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。
解题思路
递归解法时间复杂度太高,有大量的重复计算。使用循环解法,关键在于保存当前计算项的前两项计算结果,避免重复计算。
代码
public class Solution {
public int Fibonacci(int n) {
if(n <= 0) {
return 0;
} else if(n == 1) {
return 1;
} else {
int number1 = 0;
int number2 = 1;
for(int i = 0; i < n - 1; i++) {
int sum = number1 + number2;
number1 = number2;
number2 = sum;
}
return number2;
}
}
}
PREVIOUS剑指Offer 面试题08:旋转数组的最小数字