LeetCode: 70. Monter les escaliers-simple

Sujet:
70. Monter des escaliers
Supposons que vous montiez des escaliers. Il faut n pas pour atteindre le sommet du bâtiment.

Vous pouvez monter 1 ou 2 marches à chaque fois. De combien de manières différentes avez-vous pour grimper au sommet d'un bâtiment?

Remarque: étant donné n est un entier positif.

示例1
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1+ 12.  2
示例2
输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1.  1+ 1+ 12.  1+ 23.  2+ 1

Idée de résolution de problème:
La méthode pour grimper au nième ordre est la somme des méthodes pour grimper à l'ordre n-1 et à l'ordre n-2. Parce qu'après avoir grimpé à l'étape n-1, vous pouvez atteindre l'étape n en gravissant une autre étape. Après avoir grimpé à l'étape n-2, vous pouvez monter l'étape 2 à l'étape n à la fois, ou vous pouvez monter deux étapes 1 à l'étape n. Par conséquent, il est seulement nécessaire d'initialiser le nombre de méthodes pour monter à l'étape 1 et comment monter à l'étape 2, puis la méthode pour monter à l'étape n peut être dérivée.

Code:

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)

résultat de l'opération:
Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/qq_51771374/article/details/111598501
conseillé
Classement