LeetCode------斐波那契数列(2)
来源:力扣(LeetCode)
 链接:https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(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
第一种解法:
 将每次计算出来的结果存入hashmap中
class Solution {
    private Map<Integer,Integer> storgefib =new HashMap<>();
    public int fib(int n) {
        if(n == 0) return 0;
        if(n == 1) return 1;
        if(null != storgefib.get(n)){
            return storgefib.get(n);
        }else{
            int result = (fib(n-1)+fib(n-2))%1000000007;
            storgefib.put(n,result);
            return result;
        }
    }
}

 第二种方式,从底部向上。使用循环求解
class Solution {
    public int fib(int n){
            int result = 0;
            int pre = 1;
            int prePre =0;
        if(n == 0) return 0;
        if(n == 1) return 1;
        if(n >= 2){
            for(int i = 2;i <= n; i++){
                result = (pre+prePre)%1000000007;
                prePre = pre;
                pre = result;
            }
        }
        return result;
    }
}

解答过程同爬楼梯:具体参考这里:https://blog.csdn.net/weixin_43304253/article/details/122269352
LeetCode------斐波那契数列(2)的更多相关文章
- [LeetCode] 70. Climbing Stairs(斐波那契数列)
		
[思路] a.因为两种跳法,1阶或者2阶,那么假定第一次跳的是一阶,那么剩下的是n-1个台阶,跳法是f(n-1); b.假定第一次跳的是2阶,那么剩下的是n-2个台阶,跳法是f(n-2) c.由a.b ...
 - [LeetCode] Climbing Stairs 斐波那契数列
		
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
 - [每日一题2020.06.14]leetcode #70 爬楼梯 斐波那契数列 记忆化搜索 递推通项公式
		
题目链接 题意 : 求斐波那契数列第n项 很简单一道题, 写它是因为想水一篇博客 勾起了我的回忆 首先, 求斐波那契数列, 一定 不 要 用 递归 ! 依稀记得当年校赛, 我在第一题交了20发超时, ...
 - Python 实现 动态规划 /斐波那契数列
		
1.斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数 ...
 - C#版 - 剑指offer 面试题9:斐波那契数列及其变形(跳台阶、矩形覆盖) 题解
		
面试题9:斐波那契数列及其变形(跳台阶.矩形覆盖) 提交网址: http://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3?tp ...
 - 509. Fibonacci Number斐波那契数列
		
网址:https://leetcode.com/problems/fibonacci-number/ 原始的斐波那契数列 运用自底向上的动态规划最佳! 可以定义vector数组,但是占用较多内存空间 ...
 - [Amazon] Program for Fibonacci numbers 斐波那契数列
		
The Fibonacci numbers are the numbers in the following integer sequence. 0, 1, 1, 2, 3, 5, 8, 13, 21 ...
 - 【剑指Offer】面试题10- I. 斐波那契数列
		
题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2) ...
 - [剑指offer]10.斐波那契数列+青蛙跳台阶问题
		
10- I. 斐波那契数列 方法一 Top-down 用递归实现 def fibonacci(n): if n <= 0: return 0 if n == 1: return 1 return ...
 - C#求斐波那契数列第30项的值(递归和非递归)
		
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
 
随机推荐
- Spring的简单使用(3)
			
一:SM框架的整合: 所需要的依赖: <dependency> <groupId>junit</groupId> <artifactId>junit&l ...
 - vue中axios配置代理的俩种方式及优缺点
			
概述:Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中 当我们使用vue向服务器发送AJAX请求时,我们会遇到跨域问题,一般跨域的解决方案有俩种,一种是官 ...
 - Linux 09 Vim
			
参考源 https://www.bilibili.com/video/BV187411y7hF?spm_id_from=333.999.0.0 版本 本文章基于 CentOS 7.6 概述 Vi Vi ...
 - mybatispluys-Mapper CRUD 接口
			
Mapper CRUD 接口 通用 CRUD 封装BaseMapper (opens new window)接口,为 Mybatis-Plus 启动时自动解析实体表关系映射转换为 Mybatis 内部 ...
 - 并发与并行,同步和异步,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang并发编程之GoroutineEP13
			
如果说Go lang是静态语言中的皇冠,那么,Goroutine就是并发编程方式中的钻石.Goroutine是Go语言设计体系中最核心的精华,它非常轻量,一个 Goroutine 只占几 KB,并且这 ...
 - 基于 Gitea 服务端渲染的 Jupyter Notebooks
			
本指南将向您展示如何通过配置外部渲染器来使 Gitea 呈现 Jupyter Notebooks.当然,你还可以根据本指南来为你的 Gitea 实例配置其他类型的文档渲染器,甚至是二进制文件!相信Gi ...
 - Win32简单图形界面程序逆向
			
Win32简单图形界面程序逆向 前言 为了了解与学习底层知识,从 汇编开始 -> C语言 -> C++ -> PE文件 ,直至今天的Win32 API,着实学的令我头皮发麻(笑哭). ...
 - 输入法词库解析(七)微软用户自定义短语.dat
			
详细代码:https://github.com/cxcn/dtool 前言 微软拼音和微软五笔通用的用户自定义短语 dat 格式. 解析 前 8 个字节标识文件格式 machxudp,微软五笔的 le ...
 - 基于python的RSA解密算法
			
摘要 网上有很多关于RSA的解密脚本,欧拉函数.欧几里得函数什么的,对于一个大专生的我来说,一窍不通,至此经历了三天三夜,我翻阅了RSA的加密原理,以及其底层算法,专研出了一套我自己的解密算法,尚有不 ...
 - [ML从入门到入门] 支持向量机:从SVM的推导过程到SMO的收敛性讨论
			
前言 支持向量机(Support Vector Machine,SVM)在70年代由苏联人 Vladimir Vapnik 提出,主要用于处理二分类问题,也就是研究如何区分两类事物. 本文主要介绍支持 ...