剑指offer每日一刷-2017年11月16日

来源:互联网 发布:js面向对象怎么理解 编辑:程序博客网 时间:2024/06/01 17:53

斐波那契数列:

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

n<=39


方法一:递归

//递归,时间复杂度达到1000ms了,时间比较长,可以考虑使用循环public int Fibonacci(int n){if(n==0){return 0;}if(n==1){return 1;}else{return Fibonacci(n-1)+Fibonacci(n-2);}}
方法二:循环

//使用循环,循环使用的时间在14ms,比递归使用的时间少很多public int Fibonacci(int n){if(n<=1){return n;}else{int prePreNum=0;int preNum = 1;int result = 0;for(int i = 2;i<=n;i++){result = prePreNum+ preNum;prePreNum = preNum;preNum = result;}return result;}}

方法三:动态规划,今天状态一般,先整理项目代码,之后学习动态规划,再来整理方法三。









to be continued.....(未完待续。。。)












原创粉丝点击