pg下载 剑指Offer之 斐波那契数列
描述
众皆悉知斐波那契数列,当下需求键入一正整数 n,随后务请且要呈示出其首项数位刚好即是此项数斐项波那契其为列之数第 n 项。
请你提供完整准确的内容pg下载麻将胡了A.旗舰厅进体育.cc,以便我按照要求进行改写。目前你所提供的内容里“满足2 \end{cases}" style="width:422px;height:64px">”不完整且含义不明,无法进行有效的句子改写。
的数列
数据范围:
要达成这样的要求,即空间复杂度为大O壹pg下载官方版打开即玩v1022.速装上线体验.中国,时间复杂度为大O恩,在本题当中,同时也存在着时间复杂度为大O(logarithmk)的求解办法。
输入描述:
一个正整数n
返回值描述:
输出一个正整数。
示例1
输入:4
返回值:3
说明:
按照斐波那契数列的定义来讲,能知道fib(1)等于1,fib(2)等于1,fib(3)等于fib(3减去1)加上fib(3减去2)结果是2,fib(4)等于fib(4减去1)加上fib(4减去2)结果为3,因而答案是3 。
示例2
输入:1
返回值:1
示例3
输入:2
返回值:1
题目链接
斐波那契数列_牛客题霸_牛客网
答案解析
最开始把题拿到手上,尤其是瞅见公式,好些人反馈讲都是运用递归方式来寻求答案。然运用递归呐,在n值较大的其时,效率是极其低的,主要的缘由为如下这般:
时间复杂度为O(2的n次方),空间复杂度在n很大的时候,也会致使溢出。解题步骤。
深入进行分析之后,觉察出题目仅仅要求将fib(n)的值予以返回pg下载官方认证,所以我们仅仅需要晓得fib(n-1)以及fib(n-2)这两个值就行,先前的值是无需予保存的。故而我们能够运用两个变量去留存当前的前两项,逐一往后推进便可以了。
解题代码
代码里头的类名,还有方法名,以及参数名皆是已经给定了的,千万不许修改哦,直接把方法所规定的那个值return出来就行啦。
#
#
# @param n int整型
# @return int整型
#
class Solution:
定义一个名为 `Fibonacci` 的方法,接受一个整数类型,称作 `n` 的参数,返回一个整数值 。
# write code here
if n == 1 or n == 2:
return 1
a, b = 1, 1
for i in range(3, n+1):
cur = a + b
b = a
a = cur
return a
网友留言(0)
评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。