劍指offer:變態跳臺階
試題:
一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。
程式碼:
同理,從後往前想:
f(n) = f(n-1) + f(n-2) + f(n-3) .... + f(1) + f(0)
f(n-1) = f(n-2) + f(n-3) + .... + f(1) + f(0)
則:
f(n) = f(n-1) + f(n-1) = 2*f(n-1)
則:
f(n) = 2*f(n-1)
f(n-1) = 2*f(n-2)
f(n-2) = 2*f(n-3)
......
f(2) = 2*f(1)
共有n-2+1個2相乘。
注意:
f(1) = 1
f(0) = 1
public class Solution {
public int JumpFloorII(int target) {
int res = 1;
return 1<<(target-1);
}
}
相關推薦
劍指offer:變態跳臺階
試題: 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 程式碼: 同理,從後往前想: f(n) = f(n-1) + f(n-2) + f(n-3) .... + f(1) + f(0) f(n-1
[劍指Offer]2.變態跳臺階
parent pro rii pre .net ces div cti num 題目 一僅僅青蛙一次能夠跳上1級臺階,也能夠跳上2級……它也能夠跳上n級。求該青蛙跳上一個n級的臺階總共同擁有多少種跳法。 思路 用Fib(n)表示青蛙跳上n階臺階的跳
劍指offer 09變態跳臺階
第一步 結果 ring write 遞歸 ret sta .... == 一只青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 java版本: public class Solution { publi
[劍指offer] --10.變態跳臺階(遞迴和迴圈)
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 public class Solution { public int JumpFloorII(int target) { } }
劍指Offer9:變態跳臺階
思路: 因為n級臺階,第一步有n種跳法:跳1級、跳2級、到跳n級 跳1級,剩下n-1級,則剩下跳法是f(n-1) 跳2級,剩下n-2級,則剩下跳法是f(n-2) 所以f(n)=f(n-1)+f(n-2)+...+f(1)+f(0) 因為f(n-1)=f(n-2)+f(n-3)+...+f(1)+
[劍指offer] 8. 變態跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 跳臺階的子母題,同樣動態規劃 dp[i]=dp[0]+dp[1]+...dp[i-1] ... dp[i]=2*dp[i-1] class Solution { pu
(劍指offer)變態跳臺階
時間限制:1秒 空間限制:32768K 熱度指數:248187 題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 程式碼一(遞迴): public class Solution { public
劍指offer之變態跳臺階
問題描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 求解思路 該題目肯定不能用遞迴求解和組合路徑的方式。結合前一個題目的斐波
劍指offer(9) 變態跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 解題思路 關於本題,前提是n個臺階會有一次n階的跳法。分析如下: f(1) = 1 f(2) = f(2-1) + f(2-2) //f(2-2) 表示2階一次跳2階的次
劍指offer之變態跳臺階(Java實現)
變態跳臺階 NowCoder 題目描述: 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 ###解題思路: 關於本題,前提是n個臺階會有一次n階的跳法。分析如下: f(1) = 1 f(2)
劍指offer-青蛙變態跳臺階
一、問題描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 二、思路 分析:用Fib(n)表示青蛙跳上n階臺階的跳法數,青蛙一次性跳上n階臺階的跳法數1(n階跳),設定Fib(0) = 1; 當
劍指offer:青蛙跳臺階
elf pre 描述 code floor rec 青蛙跳臺階 int return 題目描述一只青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 class Solution: """ f(0) =
【劍指Offer】變態跳臺階
快速 原來 return 斐波那契數 count csdn n) title article 目錄 題目描述 解法1 實現代碼 解法2 實
劍指offer八之跳臺階
gif logs 斐波那契 offer detail 思路 == lose code 一、題目 一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 二、思路 a.如果兩種跳法,1階或者2階,那麽假定第一次跳的是一階,那麽
【劍指Offer】06跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 時間限制:1秒;空間限制:32768K 解題思路 利用數學歸納法可以看到:當n=1,f(1) = 1;當n=2,f(2) = 2;當n>2,f(n)
劍指offer之青蛙跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 求解思路 剛開始是想要通過遞迴模擬求解,結果超時了。但是這樣肯定能求出解
劍指offer刷題-跳臺階
1. 跳臺階 題目描述:一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 題目分析 結果數滿足一個公式,從簡單的開始推導結果。
《劍指offer》系列 跳臺階(Java)
連結 牛客:跳臺階 題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 思路 和斐波那契那題類似。 程式碼 public c
劍指offer演算法-----青蛙跳臺階
積沙成塔 題目描述:一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 演算法分析與實現: 由於每次只能跳一階或者兩階,所以存在兩種情況,當在最後一跳跳了兩階的話,則條n節和跳n-2階的跳法相同,如果最
(劍指offer)青蛙跳臺階
題目描述: 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 /** * 迴圈實現,程式碼的時間效率更好 */ public class Solut