LeetCode:70。階段を上る-シンプル

トピック:
70。階段を上る
あなたが階段を上っているとしましょう。建物の最上部に到達するには、nステップかかります。

毎回1〜2歩登ることができます。建物の頂上に登るには、いくつの方法が必要ですか?

注:与えられたnは正の整数です。

示例1:
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1+ 12.  2
示例2:
输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1.  1+ 1+ 12.  1+ 23.  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)

動作結果:
ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/qq_51771374/article/details/111598501