演算法面試通關40講 45 面試題 爬樓梯

2021-09-28 19:09:36 字數 984 閱讀 7768

假設你正在爬樓梯。需要 n 階你才能到達樓頂。

每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?

注意:給定 n 是乙個正整數。

示例 1:

輸入: 2

輸出: 2

解釋: 有兩種方法可以爬到樓頂。

1. 1 階 + 1 階

2. 2 階

示例 2:

輸入: 3

輸出: 3

解釋: 有三種方法可以爬到樓頂。

1. 1 階 + 1 階 + 1 階

2. 1 階 + 2 階

3. 2 階 + 1 階

class

solution

return memory[n-1]

;}}

使用遞迴+記憶化

class

solution

public

inthelper

(int n,

int[

] memory)

return memory[n];}

}

class

solution

:def

climbstairs

(self, n:

int)

->

int:

if n<=2:

return n

memory =[0

]*nmemory[0]

, memory[1]

=1,2

for i in

range(2

,n):

memory[i]

= memory[i-1]

+ memory[i-2]

return memory[n-

1]

演算法面試通關40講 23 面試題 求眾數

給定乙個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在眾數。示例 1 輸入 3,2,3 輸出 3示例 2 輸入 2,2,1,1,1,2,2 輸出 2sorting class solution class solutio...

演算法面試通關40講總結

昨日,我看完了演算法面試40講,這門課程的學習一直斷斷續續。費了九牛二虎之力,在不斷回溯和反覆當中,結束了這一門課程。演算法是解決問題的方法,特別是計算機解決問題的方法。廣義上,演算法就是指人們處理問題的思路,而在計算機裡,便是乙個個解決實際問題的思路的抽象概括。各個資料結構也是對演算法的輔助。演算...

演算法面試題

1 兩個有序的陣列求中位數 時間複雜度o log n m 這個演算法有一定的缺陷,僅做參考 2 如何解決hash衝突 3 調整陣列順序使奇數字於偶數前面 void reorderoddeven int pdata,unsigned int length 4 鍊錶中倒數第k個節點 listnode f...