第三代半导体 linux Eclipse插件 作用域 csv recursion datatable nhibernate 后台管理ui js字符串排序 leach算法 nikto扫描web漏洞 python3文件操作 python安装模块 怎么配置java环境 java替换字符串 java特性 java线程停止 linux系统教程 linux密码 超级兔子ie修复专家 corelpainter 简体中文语言包 端口关闭工具 html5网页制作 免费书籍 通讯录管理系统 subscribe 坐标标注插件 go程序设计语言 批量插入数据 骰子牛牛怎么玩 mp4剪切合并大师 oledbconnection ps祛痘 卧龙推广 任务管理软件 谷歌地球怎么用不了 齐论工具箱 点状字体
当前位置: 首页 > 学习教程  > 编程语言

[剑指 offer]10 - 1 斐波那契数列 Java实现

2020/12/5 9:44:38 文章标签:

剑指 Offer 10- I. 斐波那契数列 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) 0, F(1) 1 F(N) F(N - 1) F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始&…

在这里插入图片描述

剑指 Offer 10- I. 斐波那契数列

写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:

F(0) = 0, F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。

答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

示例 1:

输入:n = 2
输出:1
示例 2:

输入:n = 5
输出:5

提示:

0 <= n <= 100

代码

大概是大一做的老题了, 我记得还有一个进阶递归问题是走楼梯有多少种方法的
(不会下一题就是走楼梯吧
另外其实我不是特别喜欢用递归的方法, 用动态规划的也许比现在更好一些?(
可以把内存的使用量降下来

class Solution {
    public int fib(int n) {
        if(n == 0){
            return 0;
        }else if(n == 1){
            return 1;
        }
        int flag1 = 0, flag2 = 1;
        int temp = 0;
        for (int i = 2; i <= n; i++) {
            temp = flag1 + flag2;
            temp = temp % 1000000007;
            flag1 = flag2;
            flag2 = temp;
        }
        return temp;
    }
}

本文链接: http://www.dtmao.cc/news_show_450063.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?