剑指offer面试题9 斐波那契数列
2017-08-11 19:36
239 查看
解题思路:传统的利用递归求斐波那契数列的第n项,遇到挑剔的面试官,可能他们不会喜欢,因为这种方法中存在比较多的重复计算,当n较大时,会严重影响算法的效率,因此采用其他思路。更简单的方法是从下往上计算,首先根据f(0)和f(1)算出f(2),设计三个局部变量first和last和sum,每一次将first+last的值赋给sum,然后将last的值作为下次计算的first,sum的值作为下次计算的last,直到循环到n为止。
public int Fibonacci(int n) {
int first = 0;
int last = 1;
int i = 1;
int sum = 0;
while (i < n) {
sum = first + last;
//代表下一步的first
first = last;
//代表下一步的last
last = sum;
i++;
}
return sum;
}
public int Fibonacci(int n) {
int first = 0;
int last = 1;
int i = 1;
int sum = 0;
while (i < n) {
sum = first + last;
//代表下一步的first
first = last;
//代表下一步的last
last = sum;
i++;
}
return sum;
}
相关文章推荐
- 剑指offer:面试题9,斐波那契数列
- (剑指Offer)面试题9:斐波那契数列
- 剑指Offer面试题9[斐波那契数列]
- 剑指offer:面试题9,斐波那契数列
- 剑指Offer面试题10:斐波那契数列
- 剑指offer:面试题9,斐波那契数列
- 剑指offer面试题9——矩形框覆盖(递归改循环,斐波那契数列)
- 剑指Offer_面试题09_斐波那契数列
- 剑指offer:面试题9,斐波那契数列
- 《剑指offer》(面试题9):斐波那契数列
- 剑指offer_面试题9_斐波那契数列
- 剑指offer-面试题 9 斐波那契数列
- 《剑指offer》面试题10:斐波那契数列(含矩阵乘法解法)
- 《剑指Offer》面试题九之斐波那契数列
- 剑指offer——面试题9:斐波那契数列
- 剑指Offer----面试题九:斐波那契数列
- 《剑指Offer》学习笔记--面试题9:斐波那契数列
- 剑指offer-chapter2-面试题9-斐波那契数列(java)
- 《剑指offer》面试题9:斐波那契数列
- 剑指Offer面试题9(java版):斐波那契数列