《劍指offer》系列 跳臺階(Java)
連結
牛客:跳臺階
題目描述
一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。
思路
和斐波那契那題類似。
程式碼
public class Solution { public int JumpFloor(int num) { if(num == 0||num == 1||num == 2) return num; int first = 1; int second = 2; int res = 0; for(int i=3; i <= num; i++) { res = first + second; first = second; second = res; } return res; } }
相關推薦
劍指offer之跳臺階(Java實現)
跳臺階 NowCoder 題目描述: 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 ###解題思路: 對於第n個臺階來說,只能從n-1或者n-2的臺階跳上來,所以 F(n) = F(n-1) +
《劍指offer》系列 跳臺階(Java)
連結 牛客:跳臺階 題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 思路 和斐波那契那題類似。 程式碼 public c
劍指offer:醜數(java)
package Second; /** * 題目: * 把只包含質因子2、3和5的數稱作醜數(Ugly Number)。 * 例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。
劍指offer:字串的組合(java)
字串的組合: 給一個字串,比如ABC, 把所有的組合,即:A, B, C, AB, AC, BC, ABC, 都找出來。 解題思路: 假設我們想在長度為n的字串中求m個字元的組合。我們先從頭掃描字串的第一個字元。針對第一個字元,我們有
劍指offer演算法8 跳臺階(JAVA)
這個問題歸根結底還是一個費布拉奇數列,仔細找一下規律即可,剛開始做的時候我是直接寫出前六個數的結果來找規律的。 一級臺階:1種 fib(1)=1 二級臺階:2種 fib(2)=2 三級臺階:3種 fib(3)=fib(1)+fib(2)=3 四級臺階:5種 fib(4
劍指Offer面試題15(Java版):鏈表中倒數第K個結點
head 計數器 easy sta 相同 ret white style 輸出 題目: 輸入一個鏈表。輸出該鏈表中倒數第k哥結點。 為了符合大多數人的習慣,本題從1開始計數。即鏈表的尾結點是倒數第1個結點。 比如一個鏈表有6個結點。從頭結點開始它們的值依次是1。2。
劍指Offer面試題43(Java版):n個骰子的點數
pac pos max mod ins pri class pro bili 題目:把n個骰子仍在地上。全部骰子朝上一面的點數之和為s,輸入n,打印出s的全部可能的值出現的概率。 解法一:基於遞歸求骰子的點數,時間效率不夠高 如今我們考慮怎樣統計每個點數出現的次數。要向
劍指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-09-跳臺階
n-1 HERE pre cti asc 斐波那契 code java return 題目描述 一只青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 題目分析 青蛙只跳1或2可以得出是一個斐波那契問題,即a[n]=a
劍指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(8) 跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 解題思路 a.如果兩種跳法,1階或者2階,那麼假定第一次跳的是一階,那麼剩下的是n-1個臺階,跳法是f(n-1); b.假定第一次跳的是2階,那麼剩下的是n-
劍指Offer刷題筆記(java實現)_26.樹的子結構
題目描述: 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構)。 其實思路很簡單:我們的演算法就通過比較即可,因為是樹的遍歷比較所以第一時間想到了遞迴 先假設母樹為A,子樹為B (1)我們先去判斷節點的第一個點的值是
劍指Offer刷題筆記(java實現)_39.陣列中次數超過一半的數字
陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。 例如輸入陣列:{1,3,3,2,3,2,3,3,2}。由於2在陣列中出現了5次,超過陣列長度的一半,因此要輸出2。 三種解法: 第一種遍歷陣列,利用hashMap儲存每個數字出現的次數,時間複雜度O(n)
劍指offer--變態跳臺階
題目如下: 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 解題思路: 其實有兩種解題思路,個人更傾向於第二種方法,應為個人覺得它更符合計算機解決問題的思路。 在這道題目之前,其實還有一個簡單的青蛙
劍指Offer面試題40(Java版):陣列出現一次的數字
題目:一個整型數組裡除了兩個數字之外,其他的數字都出現了兩次。 * 請些程式找出這兩個只出現一次的數字。要求時間複雜度為O(n),空間複雜度為O(1) 例如輸入陣列{2,4,3,6,3,2,5,5},
劍指offer之矩形覆蓋(Java實現)
矩形覆蓋 NowCoder 題目描述: 我們可以用21的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個21的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法? ###解題思路: 2*n的大矩形,和n個2*1的小矩形 其中target*2為大矩陣的大小