トピック:
70。階段を上る
あなたが階段を上っているとしましょう。建物の最上部に到達するには、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 阶
問題解決のアイデア:
n次に登る方法は、n-1次とn-2次に登る方法の合計です。ステップn-1に登った後、別のステップに登ることでステップnに到達できるからです。ステップn-2に登った後、一度にステップ2からステップnに登るか、2つのステップ1からステップnに登ることができます。したがって、ステップ1に登る方法の数と、ステップ2に登る方法を初期化するだけで、ステップnに登る方法を導き出すことができます。
コード:
class Solution:
def climbStairs(self, n: int) -> int:
first = 1
second = 2
num = 0
for i in range(2, n):
num = first + second
first = second
second = num
return max(n, num)
動作結果: