《劍指Offer》-Java實現-變態跳臺階
題目描述
一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。
思路
因為n級臺階,第一步有n種跳法:跳1級、跳2級、到跳n級跳1級,剩下n-1級,則剩下跳法是f(n-1)。
所以f(n)=f(n-1)+f(n-2)+…+f(1)
因為f(n-1)=f(n-2)+f(n-3)+…+f(1)
所以f(n)=2*f(n-1)
程式碼
public class Solution {
public int JumpFloorII(int target) {
if(target == 1)
return 1;
else if(target ==2)
return 2;
else
{
return JumpFloorII(target-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級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 思路 我想說,這青蛙真變態,真能跳。 當n=1時,結果為1; 當n=2時,結果為2; 當n=3時,結果為4; 以此類推,我們使用數學歸納法不難發現
劍指offer刷題-變態跳臺階問題
時間限制:1秒 空間限制:32768K 熱度指數:244626 題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。。 題目分析 依舊從簡單到複雜 結果數滿足一個公式,從簡單的開始推導結果
[牛客網,劍指offer,python] 變態跳臺階
變態跳臺階 題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 解題思路 這個問題和 跳臺階 很類似,只是將青蛙每次跳躍階數
《劍指Offer》-Java實現-變態跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 思路 因為n級臺階,第一步有n種跳法:跳1級、跳2級、到跳n級跳1級,剩下
劍指offer(8)跳臺階
fun col ber function font 一個 結果 size write 題目描述: 一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 解題代碼: function jumpFloor(
劍指offer刷題之跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 # -*- coding:utf-8 -*- class Solution: def jumpFloor(self, nu
劍指offer-Java實現:題目4、重建二叉樹
題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹並返回。 思路:瞭解二叉樹的前,中,
劍指offer-Java實現:題目3、替換空格
題目描述 輸入一個連結串列,按連結串列值從尾到頭的順序返回一個ArrayList。 思路:看到說要從尾到頭,很容易想到棧這種資料結構。 程式碼: import java.util.ArrayList; impor
劍指offer-Java實現:題目2、替換空格
題目描述 請實現一個函式,將一個字串中的每個空格替換成“%20”。例如,當字串為We Are Happy.則經過替換之後的字串為We%20Are%20Happy。 思路:就替換空格啊,Java寫很簡單。 程式碼: public class Solu
劍指offer-Java實現:題目1、二維陣列中的查詢
題目描述 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 思路:由於題目說從左到右,從上到下都是遞增的。我一開
劍指offer-Java實現:題目5、利用兩個棧實現佇列
題目描述 用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。 思路:棧的特點:先進後出 。 佇列特點:先進先出。自己畫了畫圖,看的比較秦楚,大概是每次進佇列操作都進stack1棧,出佇列時必須先把stack1彈棧到stack2中,這樣剛好就
劍指offer 第8題 跳臺階
描述: 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 思路: 逆向思維,倒數第二次和最後一次有兩種情況,跳一次,跳兩次,同理,倒數第二次和倒數第三次也有兩種,有f(n)=f(n-1)+f(n+1),符合斐波那契數列
劍指offer(java實現)第1題“二維陣列中的查詢”-牛客網
題目描述 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數 時間限制:1秒 空間限制:32768K 熱度指數:753571 解答
劍指offer(java實現)第21題“棧的壓入、彈出序列”-牛客網
題目描述 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序
用兩個棧實現佇列 劍指offer java
題目描述 用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。 import java.util.Stack; public class Solution { Stack<Integer> stack1 = new Stack<In
【劍指offer Java】面試題2:實現Singleton模式
題目:設計一個類,我們只能生成該類的一個例項。 //餓漢式 public static class Singleton01{ //預先初始化static變數 private final static Singleton01
劍指offer java -查找旋轉數組的最小數字
查找 dmi pub -- else if tin 最小數 [] java /** * Created by wqc on 2017/7/18. * 查找旋轉數組的最小數字 * 把一個數組最開始的若幹個元素搬到數組的末尾,稱為數組的旋轉 * 輸入一個遞增排序的數組的一個旋轉