动态规划8:斐波那契数列

来源:互联网 发布:免费视频字幕制作软件 编辑:程序博客网 时间:2024/05/01 18:54

题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。

n<=39。

思路:所谓斐波那契数列是专有名词,就是指1,1,2,3,5,8,13,21……

f(n)=f(n-1)+f(n-2);等价于台阶问题。暴力递归时间不可行,使用动态规划解决。

题目要求的是求出返回第n项。

//求斐波那契数列的第n项:动态规划public class Solution {    public int Fibonacci(int n) {        //特殊输入:一定要有这个判断        if(n<=0) return 0;        //边界条件:        if(n<=2) return 1;        //定义指针        int f1=1;        int f2=1;        //使用一个变量来保存结果即可,由于每个结果只使用1次因此可以覆盖        int temp=0;        for(int i=3;i<=n;i++){            //移动指针f1和f2            temp=f1+f2;            f1=f2;            f2=temp;        }        return f2;    }}

0 0
原创粉丝点击