劍指 Offer 10- II. 青蛙跳臺階問題Java
一隻青蛙一次可以跳上1級臺階,也可以跳上2級臺階。求該青蛙跳上一個 n 級的臺階總共有多少種跳法。
答案需要取模 1e9+7(1000000007),如計算初始結果為:1000000008,請返回 1。
用f(1)表示跳到第一個臺階的路徑數
用f(2)表示跳到第二個臺階的路徑數
用f(3)表示跳到第三個臺階的路徑數
用f(4)表示跳到第四個臺階的路徑數
用f(n)表示跳到第n個臺階的路徑數
當有0個臺階時,有一種方式(演算法上的規定)
當有1個臺階時,有一種方式
當有2個臺階時,有兩種方式
當有3個臺階時,有三種方式 f(1)+f(2)=1+2=3
這個時候,你站在第一個臺階上到第三個臺階有兩種情況,
方法一:從第一個臺階跳兩步到達。有f(1)種路徑。
方法二:從第二個臺階跳一步到達。有f(2)種路徑。
當有4個臺階時,有5種方式 f(2)+f(3)=3+2=5
這個時候,你站在第一個臺階上到第三個臺階有兩種情況,
方法一:從第二個臺階跳兩步到達。有f(2)種路徑。
方法二:從第三個臺階跳一步到達。有f(3)種路徑。
public int numWays(int n) {
if(n<=1){
return 1;
}
int[] nums = new int[n+1];
nums[0] = 1;//臺階為0
nums[1] = 1;//臺階為1
for(int i =2 ;i<n+1;i++) {
nums[i]=(nums[i-1]+nums[i-2])%1000000007;
}
return nums[n];
}
相關文章
- 劍指offer——跳臺階
- 劍指offer 變態跳臺階
- 劍指 Offer 14- II. 剪繩子 II
- 劍指offer 9 變態跳臺階
- 劍指 Offer 59 - II. 佇列的最大值佇列
- 《劍指offer》JAVA題解,LeetCode評測JavaLeetCode
- [每日一題] 第十七題:青蛙跳臺階問題每日一題
- # 劍指 Offer 68 - II. 二叉樹的最近公共祖先二叉樹
- 劍指 Offer 10- I. 斐波那契數列
- 【劍指offer】讓抽象問題具體化抽象
- 劍指Offer題解合集
- 劍指 Offer 57 - II. 和為s的連續正數序列
- 劍指 Offer 32 - II. 從上到下列印二叉樹 II 做題筆記二叉樹筆記
- 青蛙跳臺階
- 劍指offer第41~50題
- 劍指offer刷題記錄
- 劍指OFFER
- [劍指offer] JAVA版題解(完整版)更新中。。。Java
- 劍指offer面試題(41-50)——java實現面試題Java
- 劍指offer解析-上(Java實現)Java
- 劍指offer解析-下(Java實現)Java
- 劍指offer刷題day02
- 劍指offer第49題 醜數
- mysql 索引十連問| 劍指 offer - mysqlMySql索引
- 臺階很高,青蛙跳不跳?
- LeetCode-劍指Offer刷題記錄LeetCode
- DAY2 做題變態青蛙跳臺階
- 劍指offer導航
- Leetcode劍指offer(八)LeetCode
- 劍指 offer21
- 劍指offer16
- 劍指 offer20
- 青蛙跳臺階(遞迴思想)遞迴
- 劍指Offer系列刷題筆記彙總筆記
- 劍指offer-JavaScript版JavaScript
- 【劍指Offer】矩形覆蓋
- 六、劍指 Offer(25~29)
- 「劍指offer」27道Mybatis面試題含解析MyBatis面試題