劍指offer(8)跳臺階
題目描述:
一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。解題代碼:
function jumpFloor(number)
{
// write code here
//跳臺階問題是斐波那契數列的一個形式轉換,要跳上n級臺階
//如果第一步跳1級,剩下臺階的跳法即為跳上n-1級臺階的跳法
//如果第一步跳2級,剩下臺階的跳法即為跳上n-2級臺階的跳法
if(number <= 2){
return number;
}
var prepre = 1;
var pre = 2;
var now = 0;
for(var i = 3;i <= number;i++){
now = prepre + pre;
prepre = pre;
pre = now;
}
return now;
}
劍指offer(8)跳臺階
相關推薦
劍指offer(8)跳臺階
fun col ber function font 一個 結果 size write 題目描述: 一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 解題代碼: function jumpFloor(
劍指offer——(8)重建二叉樹&&二叉樹的深度
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x)
劍指offer 第8題 跳臺階
描述: 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 思路: 逆向思維,倒數第二次和最後一次有兩種情況,跳一次,跳兩次,同理,倒數第二次和倒數第三次也有兩種,有f(n)=f(n-1)+f(n+1),符合斐波那契數列
牛客網線上程式設計專題《劍指offer》(8)跳臺階
題目連線: 題目: 解題思路: 1. 問題分析 設f(n)表示青蛙跳上n級臺階的跳法數。 當只有一個臺階時,即n = 1時,只有1中跳法; 當n = 2時,有2種跳法; 當n = 3 時,有3種跳法; 當n很大時,青蛙在最後一步跳到第n級臺階時,有兩種情況:
劍指offer——(3)斐波那契數列&&跳臺階&&瘋狂跳臺階進階版&&矩形覆蓋
這兩道題 其實相同。 public class Solution { /* 一看到題目就想到用遞迴,結果雖然能通過,但時間還是太長 */ public int Fibonacci(int target) { return hhh(ta
牛客(8)跳臺階
臺階 == jump targe sta 跳臺階 floor get turn // 題目描述// 一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 public static int JumpFloor(int
劍指Offer(書):替換空格
amp class har 補充 buffer space style col new 題目:請實現一個函數,將一個字符串中的每個空格替換成“%20”。例如,當字符串為We Are Happy.則經過替換之後的字符串為We%20Are%20Happy。 分析:通常來說,這樣
劍指Offer(書):重建二叉樹
中序 span 問題 找到 div 節點 left 假設 array 題目:輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,
劍指Offer(書):數值的整數次方
== 浮點 int pow while 註意 ble double amp 題目:給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。 分析: * 要註意以下幾點:* 1.冪為負數時,base不能為0,不然求的時候是
劍指Offer(書):調整數組順序使奇數位於偶數前面
clas off 劍指offer col 數組 lse 整數 lag true 題目:輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 public v
劍指Offer(書):反轉鏈表
col after 分析 listnode head tno eve offer 開始 題目:輸入一個鏈表,反轉鏈表後,輸出新鏈表的表頭。 分析:要分清他的前一個節點和後一個節點,開始的時候前節點為null,後節點為head.next,之後,反轉。 public
劍指Offer(書):順時針打印數組
變量 每一個 while lis out args turn rgs i++ 題目:輸入一個矩陣,按照從外向裏以順時針的順序依次打印出每一個數字,例如,如果輸入如下4 X 4矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數
劍指offer(57)二叉樹的下一個節點
需要 div 2種 color 節點 兩種 我們 cti 指向 題目描述 給定一個二叉樹和其中的一個結點,請找出中序遍歷順序的下一個結點並且返回。註意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指針。 題目分析 這題一定要畫圖,因為只有畫圖我們才能分清楚下一個節
劍指offer(59)按之字形順序打印二叉樹
eve 就是 是我 數據結構 rev 其他 正常的 正常 nbsp 題目描述 請實現一個函數按照之字形打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右至左的順序打印,第三行按照從左到右的順序打印,其他行以此類推。 題目分析 這道題還是需要畫圖分析,不然不好找規
劍指offer(62)二叉搜索樹的第K個節點
它的 spa cti pan class 們的 得到 style 例如 題目描述 給定一棵二叉搜索樹,請找出其中的第k小的結點。例如, (5,3,7,2,4,6,8) 中,按結點數值大小順序第三小結點的值為4。 題目分析 首先,我們可以先畫圖。畫完圖後我們要想辦法
劍指offer(3)從尾到頭打印鏈表
() pre code == nod offer ever 順序 輸入 題目描述: 輸入一個鏈表,按鏈表值從尾到頭的順序返回一個ArrayList。 解題代碼: /*function ListNode(x){ this.val = x; this.ne
劍指offer(6)旋轉數組的最小數字
rotate ret length -s 一個數 min 一個 UNC -i 題目描述: 把一個數組最開始的若幹個元素搬到數組的末尾,我們稱之為數組的旋轉。 輸入一個非減排序的數組的一個旋轉,輸出旋轉數組的最小元素。 例如數組{3,4,5,1,2}為{1,2,3,4,5}
劍指offer(7)斐波那契數列
sub write return 16px color 現在 UNC 輸入一個整數 得到 題目描述: 大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。n<=39 解題代碼: function Fibonacc
劍指offer(15)反轉鏈表
-i node size bject tno subject ont code title 題目描述: 輸入一個鏈表,反轉鏈表後,輸出新鏈表的表頭。 解題代碼: /*function ListNode(x){ this.val = x; this.ne
劍指offer(17)樹的子結構
ont 題目 說明 我們 itl btree -s font 可能 題目描述: 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) 解題代碼: /* function TreeNode(x) { this.val = x