遞推解決爬樓梯問題

2021-10-11 07:26:19 字數 613 閱讀 8611

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

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

示例 1:

輸入: 2

輸出: 2

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

1 階 + 1 階

2 階示例 2:

輸入: 3

輸出: 3

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

1 階 + 1 階 + 1 階

1 階 + 2 階

2 階 + 1 階

思路:由於每次只能走1階或者2階,所以,如果我們想要到達第n個台階,那麼就只能先到達第n - 1階或者第n - 2階

最後到達第n階的總的次數就是到達第n - 1階的次數加上到達第n -2階的次數(類似於斐波那契數列)

如果用遞迴來寫就是下面的形式,可是這種會計算大量重複的值,如果將資料儲存在陣列中,可大大減少計算量

class

solution

};

使用陣列儲存值,減少計算量

class

solution

return stair[n];}

};

爬樓梯問題總結 (遞推)

有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?首先題目限制只能走一級或者兩級,所以逆向思考一下,要到達n級樓梯,只有兩種方式,從 n 1 級 或 n 2 級到達的。所以可以用遞推的思想去想這題,假設有乙個陣列s n 那麼s 1 1 由於一開始就在第一級,...

遞迴和遞推解決爬樓梯問題

題目 樓梯一次可以爬1級,也可以爬2級,有n級樓梯,有多少種走法?看到此題首先找出規律 1 走到第1級,有1種方法 2 走到第2級,有2種方法 3 走到第3級,有3種方法 4 走到第4級,有5種方法 5 走到第5級,有8種方法 以此類推,後面的總等於前面兩級方法之和,現在使用遞迴和遞推兩種方法解決本...

遞推之爬樓梯

爬樓梯 time limit 1000 ms memory limit 65536 kib submit statistic discuss problem description 小明是個非常無聊的人,他每天都會思考一些奇怪的問題,比如爬樓梯的時候,他就會想,如果每次可以上一級台階或者兩級台階,那...