码迷,mamicode.com
首页 > 编程语言 > 详细

斐波那契数列算法优化

时间:2015-04-08 14:49:33      阅读:261      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!