剑指 Offer 10- II. 青蛙跳台阶问题
青蛙跳台阶问题
题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。
答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
示例 1:
输入:n = 2
输出:2
示例 2:
输入:n = 7
输出:21
示例 3:
输入:n = 0
输出:1
提示:
0 <= n <= 100
注意:本题与主站 70 题相同:https://leetcode-cn.com/problems/climbing-stairs/
思路:
时间复杂度:O(n),空间复杂度O(1)
dp
代码:
func numWays(n int) int {
var f []int
if(n==1 || n == 0){
return 1
}else if(n == 2){
return 2
}
f = append(f,1,2)
for i:=2; i<=n;i++{
f = append(f,(f[i-1]+f[i-2])% 1000000007)
}
return f[n-1]
}
代码效率:
执行用时:0 ms, 在所有 Go 提交中击败了100.00%的用户
内存消耗:1.9 MB, 在所有 Go 提交中击败了20.91%
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!