赣icp上饶网站建设,易语言网站批量注册怎么做,电商商城开发,延安网站建设网络公司509. 斐波那契数
已解答 简单 相关标签 相关企业 斐波那契数 #xff08;通常用 F(n) 表示#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始#xff0c;后面的每一项数字都是前面两项数字的和。也就是#xff1a; F(0) 0#xff0c;F(1) 1 F(n) F(n - …509. 斐波那契数
已解答 简单 相关标签 相关企业 斐波那契数 通常用 F(n) 表示形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始后面的每一项数字都是前面两项数字的和。也就是 F(0) 0F(1) 1 F(n) F(n - 1) F(n - 2)其中 n 1 给定 n 请计算 F(n) 。
示例 1 输入n 2输出1解释F(2) F(1) F(0) 1 0 1 示例 2 输入n 3输出2解释F(3) F(2) F(1) 1 1 2 示例 3 输入n 4输出3解释F(4) F(3) F(2) 2 1 3
提示
0 n 30
代码
func fib(n int) int {if n 0 {return 0} else if n 1 {return 1}return fib(n-1) fib(n-2)
}70. 爬楼梯
已解答 简单 相关标签 相关企业 提示 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢
示例 1 输入n 2输出2解释有两种方法可以爬到楼顶。 示例 2 输入n 3输出3解释有三种方法可以爬到楼顶。
提示
1 n 45
代码
func climbStairs(n int) int {// dp[i]表示在第i阶台阶有dp[i]种方法dp:make([]int,n1)// dp[0] 1// dp[1] 1// dp[2] 2dp[0],dp[1]1,1for i:2;in;i{dp[i]dp[i-1]dp[i-2]}return dp[n]
}746. 使用最小花费爬楼梯
已解答 简单 相关标签 相关企业 提示 给你一个整数数组 cost 其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低花费。
示例 1 输入cost [10,15,20]输出15解释你将从下标为 1 的台阶开始。 示例 2 输入cost [1,100,1,1,1,100,1,1,100,1]输出6解释你将从下标为 0 的台阶开始。
提示
2 cost.length 10000 cost[i] 999
代码
func minCostClimbingStairs(cost []int) int {n : len(cost)climb : make([]int, n1)climb[0], climb[1] 0, 0for i : 2; i n1; i {climb[i] min(climb[i-1]cost[i-1], climb[i-2]cost[i-2])//动态转移方程}return climb[n]
}
func min(i, j int) int {if i j {return j}return i
}