劍指offer 第9題 變態跳臺階
描述:
一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。
思路:
f(n) = f(n-1) + f(n-2) + ... + f(1) + f(0)
f(n-1) = f(n-2) + ... + f(0)
所以f(n) = f(n - 1) + f(n - 1)
程式碼:
class Solution:
def jumpFloorII(self, number):
# write code here
return 2 ** (number - 1)
結果:
執行時間:28ms
佔用記憶體:5728k
相關推薦
劍指offer 第9題 變態跳臺階
描述: 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 思路: f(n) = f(n-1) + f(n-2) + ... + f(1) + f(0) f(n-1) = f(n-2) + ... + f(0) 所以f(
【劍指offer第八題】跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果) 第一級臺階1種,第二級臺階2種,第四級3種,第四級5種,第五級8種
劍指 offer_第八題_跳臺階
平臺 牛客網 語言 python2.7.3 作業內容 題目描述 一隻青蛙一次可以跳上 1 級臺階,也可以跳上 2 級。 求該青蛙跳上一個 n 級的臺階總共有多少種跳法(先後次序不同算不同的結果) 題目理解 該題的本質是斐波那契數列 解題思路 一級:1種跳法
劍指offer、牛客-變態跳臺階
數歸法:可得:public class Solution { public int JumpFloorII(int n) { if(n <= 0) return 0; if(n == 1)
劍指offer_第8題_跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。 求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果) 理解 完全蒙啊 那我們就用特例先分析一下 如果有1級臺階,那有1種 如果有2級臺階,那有2種 如果有3級臺階,那一
《劍指Offer》-Java實現-變態跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 思路 因為n級臺階,第一步有n種跳法:跳1級、跳2級、到跳n級跳1級,剩下
第1題 變態跳臺階【劍指Offer程式設計題】
b# 前言 這是一個新的部分,主要是刷劍指offer上的程式設計題,記錄自己的解法,如果看到比較讚的解法,也會放出來,共同學習。 題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。
劍指offer 第8題 跳臺階
描述: 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 思路: 逆向思維,倒數第二次和最後一次有兩種情況,跳一次,跳兩次,同理,倒數第二次和倒數第三次也有兩種,有f(n)=f(n-1)+f(n+1),符合斐波那契數列
劍指offer第3題:從尾到頭打印鏈表
off 輸出結果 pre col 結構 ava image stack 鏈表 方法一:采用棧來存儲,用ArrayList保存。註意題目給出的輸出結果是ArrayList import java.util.ArrayList; import java.util.Sta
劍指Offer--第16題 數值的整數次方
++ 循環 運算 判斷 api 比較 ron color 感覺 第16題 數值的整數次方 題目:給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。 思路 看到有點懵,第一感覺覺得是不是應該考慮0的0次或者負數情況,
棧的壓入 彈出序列(劍指offer第21題)
一、題目描述 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。 假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列, 但4,3,5,1,2就不可能是該壓棧序列的彈出序列。(注意:這
【劍指offer第三題】從尾到頭列印連結串列
import java.util.ArrayList; public class Solution { ArrayList list=new ArrayList();//放在遞迴體外面,每次新
【劍指offer第五題】用兩個棧實現佇列
棧的實現是先進後出,佇列是先進先出。思路就是第一個棧的元素按次序出棧,然後第二個棧依次入棧,然後出棧。 import java.util.Stack; public class Solution
【劍指offer第六題】旋轉陣列的最小數
題目描述 把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入一個非減排序的陣列的一個旋轉,輸出旋轉陣列的最小元素。 例如陣列{3,4,5,1,2}為{1,2,3,4,5}的一個旋
【劍指offer第七題】斐波那契數列
題目描述 大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。 n<=39 剛開始覺得輸入為一個數,然後找到這個數在斐波那契數列中的位置
【劍指offer第十題】矩形覆蓋
題目描述 我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法? n=0,0種; n=1,1種; n=2,2種; n=
劍指offer第32題JS演算法:輸入一個整數n,求從1到n這n個整數的十進位制表示中1出現的次數。例如輸入12,從1到12這些整數中包含1的數字有1,10,11和12,1一共出現了5次
題目:輸入一個整數n,求從1到n這n個整數的十進位制表示中1出現的次數。例如輸入12,從1到12這些整數中包含1的數字有1,10,11和12,1一共出現了5次 這是我某一次去朋友公司面試試水時出的面試題,結果給我五分鐘我寫了個for迴圈的方法,被狠狠鄙視/哭笑不得 結果回來後好奇就跟同事
陣列中出現次數超過一半的數字(劍指offer第29題)
一、題目描述 陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。 例如輸入一個長度為9的陣列{1,2,3,2,2,2,5,4,2}。由於數字2在陣列中出現了5次, 超過陣列長度的一半,因此輸出2。如果不存在則輸出0 二、解題思路 (方法一):自己想出來的,時
劍指offer第24題(二叉樹中和為某一值的路徑)
題目:輸入一顆二叉樹和一個整數,打印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。 思想:由於本題中的根要在前面,因而我們首先想到的是前序遍歷。當用前序遍歷的方式訪問某一節點時,我們把該節點新增到路徑上,並累加
劍指offer第1題
Q:在一個二維陣列中,每一行都按照從左到右遞增順序排序,每一列都按照從上到下遞增排序。完整一個函式,輸入這樣二維陣列和一個整數,判斷陣列中是否含這個整數。 思路一: /* 矩陣是有序的,從左下角來