首页 > 编程语言 > 详细

斐波那契数列算法优化

时间:2015-04-08 14:46:26      阅读:219      评论:0      收藏:0      [点我收藏+]

做一道斐波那契算法问题,结果运行超时

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);
    }
}

找到了一篇文章,http://blog.csdn.net/sloder/article/details/8624373

按照其提供的思路:

  保存计算项之前的每一项的值,每一项的计算只调用Fibonacci方法一次,

  实际调用Fibonacci方法的次数只有n-1次,如果n=33,那么调用Fibonacci方法只有32次。 

优化后的代码为:

 1 public class Solution {
 2     public int Fibonacci(int n) {
 3         if (n == 0) {
 4       return 0;
 5     }
 6     if (n == 1) {
 7       return 1;
 8     }
 9     int[] array = new int[n+1];
10     array[0] = 0;
11     array[1] = 1;
12     for (int i = 2; i < n+1; i++) {
13       array[i] = array[i - 1] + array[i - 2];
14     }
15     return array[n];
16     }
17 }

 

斐波那契数列算法优化

原文:http://www.cnblogs.com/luulsj/p/4402250.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!