劍指offer 第8題 跳臺階
描述:
一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。
思路:
逆向思維,倒數第二次和最後一次有兩種情況,跳一次,跳兩次,同理,倒數第二次和倒數第三次也有兩種,有f(n)=f(n-1)+f(n+1),符合斐波那契數列。唯一的區別是,跳臺階是從1, 2開始的,而不是0, 1。
程式碼:
class Solution: def jumpFloor(self, number): # write code here a, b = 1, 2 if number == 1: return 1 elif number == 2: return 2 else: count = 2 while count < number: a, b = b, a + b count += 1 return b
結果:
執行時間:30ms
佔用記憶體:5624k
相關推薦
劍指offer 第8題 跳臺階
描述: 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 思路: 逆向思維,倒數第二次和最後一次有兩種情況,跳一次,跳兩次,同理,倒數第二次和倒數第三次也有兩種,有f(n)=f(n-1)+f(n+1),符合斐波那契數列
劍指offer(8)跳臺階
fun col ber function font 一個 結果 size write 題目描述: 一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 解題代碼: function jumpFloor(
【劍指offer第八題】跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果) 第一級臺階1種,第二級臺階2種,第四級3種,第四級5種,第五級8種
劍指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_第8題_跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。 求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果) 理解 完全蒙啊 那我們就用特例先分析一下 如果有1級臺階,那有1種 如果有2級臺階,那有2種 如果有3級臺階,那一
劍指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】07變態跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 時間限制:1秒;空間限制:32768K 解題思路 可利用數學歸納法找規律: 當n=1,f(1) = 1; 當n=2,f(2) = 2; 當n=3,f(
劍指 Offer - 9:變態跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法 題目連結:https://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387
劍指offer-09:變態跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 關於本題,前提是n個臺階會有一次n階的跳法。分析如下: 思路 f(1) = 1 f(2) = f(2-1) + f(2-2) //f(2-2) 表示2階一次跳
【劍指offer】變態青蛙跳臺階
問題:青蛙每次可以跳1–n個臺階,跳上n個臺階有多少中跳法; 分析:同樣從後往前分析,跳上第n個臺階有n-1中可能。從第一個臺階直接跳上第n個臺階…從第n-1個臺階跳上第n個臺階,一共有: f(n)=f(n-1)+f(n-2)+f(n-3)+…f(1); f(n-1)=f(n-2)+f(n-3)+…
劍指offer------遞迴------變態跳臺階
題目 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 思路 我想說,這青蛙真變態,真能跳。 當n=1時,結果為1; 當n=2時,結果為2; 當n=3時,結果為4; 以此類推,我們使用數學歸納法不難發現
【劍指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 二、解題思路 (方法一):自己想出來的,時