自己搞个网站,网站建设捌金手指花总十八,广州自来水公司网页设计,购物软件有哪些509 斐波那契数
斐波那契数 #xff08;通常用 F(n) 表示#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始#xff0c;后面的每一项数字都是前面两项数字的和。也就是#xff1a;
F(0) 0#xff0c;F(1) 1 F(n) F(n - 1) F(n - 2)#xff0c;其中 n…509 斐波那契数
斐波那契数 通常用 F(n) 表示形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始后面的每一项数字都是前面两项数字的和。也就是
F(0) 0F(1) 1 F(n) F(n - 1) F(n - 2)其中 n 1 给定 n 请计算 F(n) 。
def fib(n:int)-int:if n0:reteurn 0dp[0]*(n1)dp[0]0dp[1]1for i in range(2,n1):dp[i]dp[i-1]dp[i-2]return dp[n]def fib(n:int)-int:if n1:return ndp[0,1]for i in range(2,n1):totaldp[0]dp[1]dp[0]dp[1]dp[1]totalreturn dp[1]def fib(n:int)-int:if n2:return nreturn fib(n-1)fib(n-2)70 爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢
思路
第n层可以由第n-1层爬一个台阶到达也可以由第n-2层爬2个台阶到达 dp[n]dp[n-1]dp[n-2]
def climbStaris(n:int)-int:if n2:return ndp[0,1,2]for i in range(3,n1):totaldp[1]dp[2]dp[1]dp[2]dp[2]totalreturn dp[2]746 使用最小花费爬楼梯
给你一个整数数组 cost 其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用即可选择向上爬一个或者两个台阶。
你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。
请你计算并返回达到楼梯顶部的最低花费。
def minCostClimbingStairs(cost:list)-int:if len(cost)2:return 0dp[0]*len(cost)dp[0]0dp[1]0for i in range(2,len(cost)):dp[i]min(dp[i-1]cost[i-1],dp[i-2]cost[i-2])return dp[-1]楼梯的顶部是第len(cost)1层不是len(cost)