劍指 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面試題9 斐波那契數列及青蛙跳臺階問題面試題
- 劍指 Offer 59 - II. 佇列的最大值佇列
- # 劍指 Offer 68 - II. 二叉樹的最近公共祖先二叉樹
- 劍指 Offer 32 - II. 從上到下列印二叉樹 II 做題筆記二叉樹筆記
- 劍指Offer題解合集
- [每日一題] 第十七題:青蛙跳臺階問題每日一題
- 【劍指offer】讓抽象問題具體化抽象
- 劍指offer刷題記錄
- 《劍指offer》JAVA題解,LeetCode評測JavaLeetCode
- 劍指offer面試題(41-50)——java實現面試題Java
- 劍指offer解析-下(Java實現)Java
- 劍指offer解析-上(Java實現)Java
- [劍指offer] JAVA版題解(完整版)更新中。。。Java
- mysql 索引十連問| 劍指 offer - mysqlMySql索引
- 劍指Offer系列刷題筆記彙總筆記
- 「劍指offer」27道Mybatis面試題含解析MyBatis面試題
- 劍指offer-JavaScript版JavaScript
- 【劍指offer】左旋轉字串字串
- 【劍指offer】字串的排列字串
- LeetCode-劍指Offer刷題記錄LeetCode
- GitHub#algorithm#:《劍指offer》 的50道面試題GithubGo面試題
- 劍指 offer(1) -- 陣列篇陣列
- Leetcode劍指offer(八)LeetCode
- 【劍指offer】【2】字串的空格字串
- 【劍指offer】字串轉整數字串
- 【劍指offer】字串的組合字串
- 劍指Offer面試題5(Java版):從尾到頭列印連結串列面試題Java
- ✏️ JavaScript版 | 10大專題 | 劍指offer刷題筆記 ✏️JavaScript筆記
- 劍指offer(Java版)--將字串轉換為整數Java字串
- 劍指offer-9-斐波那契數列-javaJava
- 劍指OFFER-從頭到尾列印連結串列(Java)Java
- 劍指offer—49.醜數—分析及程式碼(Java)Java
- 劍指offer中幾道演算法題的思考演算法
- 劍指offer面試題29:順時針列印矩陣面試題矩陣
- 劍指offer面試題11 數值的整數次方面試題
- 【劍指offer】 第三題 二維陣列查詢陣列
- 劍指offer 面試題47:不用加減乘除做加法面試題
- 劍指offer(java實現)第4題“重建二叉樹”-牛客網Java二叉樹