每日一題系列 Two Ways

2021-05-11 06:35:25 字數 413 閱讀 8092

這是一道上級面試題。

題目:上乙個n階段樓梯,每次可以上1階或者2階,請問共有多少種不同的走法?

比如:4層樓梯,答案是:([2, 2], [1, 1, 2], [1, 2, 1], [2, 1, 1], [1, 1, 1, 1]) 共5種。

解答:這個演算法的思路是遞迴,n階就是在n-1的情況下,多了一階;不過分兩種情況:

1) n-1 樓梯,第一步以1開頭,表示為 [1, ...]

則: [1, 1, ...]是一種上n階樓梯的走法

另外,由於2個單步可以合併為乙個2階步, 所以[2,...]也是一種上樓方法

2)n-1樓梯,以2開頭,表示為[2,...]

則: [1,2...]是一種新上樓方法

以上兩種情形包含了所有情形。

**:用python實現,真的很方便

每日一題 1

題目詳情 peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資...

每日一題2018 3 21

leetcode 2 模擬十進位制運算考察單鏈表基本操作。題無難點,個人基礎需要提高。definition for singly linked list.struct listnode class solution while p while q if shi val s next null ret...

每日一題2018 3 22

leetcode 03 最長不重複子串 第一反應就是動態規劃。看到了網上的方法一。直接把問題簡化為找兩個重複字元間的最長距離,太巧妙了!class solution if i idx max locs s i i return max ling老師的方法二 仍舊轉化為動態規劃,但是為節省空間不再開個...