劍指offer-09-跳臺階
題目描述
一只青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。
題目分析
青蛙只跳1或2可以得出是一個斐波那契問題,即a[n]=a[n-1]+a[n-2],那麽能跳1,2,3個臺階時a[n]=a[n-1]+a[n-2]+a[n-3],......
則有:
a[n] =a[n-1]+a[n-2]+......+a[1];..........................①
a[n-1] = a[n-2]+......+a[1];..........................②
兩式相減可知:a[n]=2*a[n-1];
純數字分析:f(1)=1;f(2)=2;f(3)=4;f(4)=8;f(5)=16;...可得f(n)=2^(n-1)
代碼
function jumpFloorII(number)
{
// write code here
//2的(n-1)次冪
return 1<<(--number)
}
劍指offer-09-跳臺階
相關推薦
劍指offer-09-跳臺階
n-1 HERE pre cti asc 斐波那契 code java return 題目描述 一只青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 題目分析 青蛙只跳1或2可以得出是一個斐波那契問題,即a[n]=a
劍指Offer——變態跳臺階
ber urn .cn bsp www. com pre 多少 ref 題目描述: 一只青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 分析: 這一題其實沒有那麽難。思路和上一題一樣(劍指Offer——跳臺階)。
《劍指offer》---跳臺階問題
n) 思路 空間限制 python += 8K source 程序 ... 本文算法使用python3實現 1. 問題1 1.1 題目描述: ??一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 ??時間限制:1s;空間限制:32
劍指offer 08跳臺階
stat system int 時間 斐波那契數 耗時 中間 number java版 一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 java版本: public class Solution {
劍指offer-變態跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 程式碼如下 class Solution { public: int jumpFloorII(int number) { if(number == 0
劍指offer[變態跳臺階]
劍指offer[變態跳臺階] 題目描述 思路 程式碼 細節知識 題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 思
[劍指offer] 8. 跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 思路: 簡單的DP,用一個數組dp[i]儲存跳到第i個臺階有幾種方法。 因為只能跳一階或者二階,所以狀態轉移方程為:
(劍指offer)跳臺階
時間限制:1秒 空間限制:32768K 熱度指數:314942 題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 思路 逆向思維,最後一級要麼跳1級,要麼跳2級。其實發現還是斐波那契數列的應用!
劍指offer(8) 跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 解題思路 a.如果兩種跳法,1階或者2階,那麼假定第一次跳的是一階,那麼剩下的是n-1個臺階,跳法是f(n-1); b.假定第一次跳的是2階,那麼剩下的是n-
劍指offer--變態跳臺階
題目如下: 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 解題思路: 其實有兩種解題思路,個人更傾向於第二種方法,應為個人覺得它更符合計算機解決問題的思路。 在這道題目之前,其實還有一個簡單的青蛙
劍指offer之跳臺階(Java實現)
跳臺階 NowCoder 題目描述: 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 ###解題思路: 對於第n個臺階來說,只能從n-1或者n-2的臺階跳上來,所以 F(n) = F(n-1) +
LeetCode(53) Climbing Stairs (劍指Offer->跳臺階、變態跳臺階)
Climbing Stairs (跳臺階) 題目描述 You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 step
劍指offer :跳臺階
一次 cto leetcode 不同的 nbsp 數組 每次 number back 這題之前刷leetcode也遇到過,感覺是跟斐波拉契差不多的題。 題目描述: 一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不
。。。劍指Offer之——跳臺階。。。
font ans 本質 return span nbsp code ret 斐波那契 // 本質是斐波那契數列 public int JumpFloor(int target) { // 如果臺階數小於2,則返回1 if
劍指offer 09變態跳臺階
第一步 結果 ring write 遞歸 ret sta .... == 一只青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 java版本: public class Solution { publi
劍指offer-09:變態跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 關於本題,前提是n個臺階會有一次n階的跳法。分析如下: 思路 f(1) = 1 f(2) = f(2-1) + f(2-2) //f(2-2) 表示2階一次跳
劍指Offer8:跳臺階
思路: 分析可知:青蛙跳n臺階一共有多少種跳法滿足斐波那契數列。 # -*- coding:utf-8 -*- class Solution: def jumpFloor(self, number): # write code here s=[]
[劍指Offer]2.變態跳臺階
parent pro rii pre .net ces div cti num 題目 一僅僅青蛙一次能夠跳上1級臺階,也能夠跳上2級……它也能夠跳上n級。求該青蛙跳上一個n級的臺階總共同擁有多少種跳法。 思路 用Fib(n)表示青蛙跳上n階臺階的跳
劍指offer---跳臺階
jump logs code ret turn offer clas -- 跳臺階 class Solution { public: int jumpFloor(int number) { // if (number ==
劍指offer八之跳臺階
gif logs 斐波那契 offer detail 思路 == lose code 一、題目 一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 二、思路 a.如果兩種跳法,1階或者2階,那麽假定第一次跳的是一階,那麽