[剑指Offer]10-斐波那契数列(循环)-Java
题解
使用循环,时间复杂度O(n).
相关
跳台阶:f(n)=f(n-1)+f(n-2)
变态跳台阶:f(n)=2*f(n-1)
矩形覆盖:f(n)=f(n-1)+f(n-2)
全部用循环代替递归,使时间复杂度为O(n).
代码
public class Solution {
    public int Fibonacci(int n) {
        if(n==0){return 0;}
        if(n==1){return 1;}
        if(n==2){return 1;}
        int preNum1=1,preNum2=1;
        for(int i=3;i<=n;++i){
            int tempPreNum2=preNum2;
            preNum2+=preNum1;
            preNum1=tempPreNum2;
        }
        return preNum2;
    }
}
[剑指Offer]10-斐波那契数列(循环)-Java的更多相关文章
- [剑指offer]10.斐波那契数列+青蛙跳台阶问题
		10- I. 斐波那契数列 方法一 Top-down 用递归实现 def fibonacci(n): if n <= 0: return 0 if n == 1: return 1 return ... 
- 《剑指offer》斐波那契数列
		本题来自<剑指offer> 斐波那契数列 矩阵覆盖 题目一: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).n<=39 思路: ... 
- 剑指offer:斐波那契数列
		目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:斐波那契数列 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n< ... 
- 力扣 - 剑指 Offer 10- I. 斐波那契数列
		题目 剑指 Offer 10- I. 斐波那契数列 思路1(递归 / 自顶向下) 这题是很常见的一道入门递归题,可以采用自顶向下的递归方法,比如我们要求第n个位置的值,根据斐波那契数列的定义fib(n ... 
- 【Java】 剑指offer(9) 斐波那契数列及青蛙跳台阶问题
		本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项 ... 
- Go语言实现:【剑指offer】斐波那契数列
		该题目来源于牛客网<剑指offer>专题. 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0) n<=39 Go语言实现: 递归: ... 
- 剑指offer三: 斐波拉契数列
		斐波拉契数列是指这样一个数列: F(1)=1; F(2)=1; F(n)=F(n-1)+F(n); public class Solution { public int Fibonacci(int n ... 
- 剑指Offer 7. 斐波那契数列 (递归)
		题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 题目地址 https://www.nowcoder.com/prac ... 
- [剑指offer] 7. 斐波那契数列 (递归 时间复杂度)
		简介: 杨辉三角每条斜线上的数之和就构成斐波那契数列. 思路: 参考文章:https://mp.weixin.qq.com/s?src=11×tamp=1551321876& ... 
- 《剑指offer》-斐波那契数列
		大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. n<=39 这么直接的问fibonacci,显然是迭代计算.递归的问题在于重复计算,而迭代则避免了这一点:递归是自 ... 
随机推荐
- webview之如何设计一个优雅健壮的Android WebView?(下)(转)
			转载:https://iluhcm.com/2018/02/27/design-an-elegant-and-powerful-android-webview-part-two/ (这篇文章写得有点晚 ... 
- Spring AOP使用注解记录用户操作日志
			最后一个方法:核心的日志记录方法 package com.migu.cm.aspect; import com.alibaba.fastjson.JSON; import com.migu.cm.do ... 
- MySQL Group Replication-MGR集群
			简介 MySQL Group Replication(简称MGR)字面意思是mysql组复制的意思,但其实他是一个高可用的集群架构,暂时只支持mysql5.7和mysql8.0版本. 是MySQL官方 ... 
- navicat 导入execl失败
			在使用navicat导入execl是遇到了如下图的错误 在更换多个版本的navicat后问题依然如故. 解决办法; 1.打开需要导入的execl 2.安装一个AccessDatabaseEngine_ ... 
- 将项目打成jar包执行 在liunx上执行 java -xx.jar
			一:普通maven java项目 项目目录 pom.xml <?xml version="1.0" encoding="UTF-8"?> <p ... 
- linux 终端 pac ssh登录工具使用教程
			1.下载: 首先下载deb文件:https://sourceforge.net/projects/pacmanager/ 2.安装: dpkg -i pac-4.5.5.7-all.deb 3.安装依 ... 
- jmeter联合selenium webdriver进行自动化测试-简单1
			jmeter进行webdriver测试 背景:jmeter可以联合selenium进行基本的UI自动化进行测试,解放了手工测试的压力.那么selenium webdriver完成GUI的流程初步如下 ... 
- 初识Git->GitHub
			这不是一篇教程,这是学习过程的一个记录,初次使用GitHub的小白请移步文章末尾的参考链接, 先了解Git是什么东西 Git的工作流程 操作Git 练习使用 边用边学 #--------------- ... 
- java-索引
			集合 集合之深入理解HashMap HashMap的实现原理,以及在JDK1.7和1.8的区别 Java集合---ConcurrentHashMap原理分析 ConcurrentHashMap原理分析 ... 
- Tools:实现ping操作带时间戳【windows+linux】
			[windows下]: ping.vbs Dim args, flag, unsuccOut args="" otherout="" flag= If WScr ... 
