王廷瑋|數位醫療|智慧醫療: 70. Climbing Stairs WFU

2024年7月4日 星期四

70. Climbing Stairs

70. Climbing Stairs


你在爬樓梯。爬到頂端需要 n 步。

每次你可以選擇爬 1 步或 2 步。你有多少種不同的方法可以爬到頂端?

範例 1:

輸入:n = 2 輸出:2 解釋:有兩種方法可以爬到頂端。1 步 + 1 步
2 步


Python


class Solution:
def climbStairs(self, n: int) -> int:
if n == 1:
return 1
if n == 2:
return 2
# Initialize the first two steps
first = 1
second = 2
# Calculate the number of ways for each subsequent step
for i in range(3, n + 1):
third = first + second
first = second
second = third
return second

16.58MB, 36ms


C++


class Solution {
public:
int climbStairs(int n) {
if (n == 1) {
return 1;
}
if (n == 2) {
return 2;
}
int first = 1, second = 2;
for (int i = 3; i <= n; ++i) {
int third = first + second;
first = second;
second = third;
}
return second;
}
};

7.14MB, 2ms


Javascript


/**
* @param {number} n
* @return {number}
*/
var climbStairs = function(n) {
if (n <= 2) {
return n;
}
let first = 1;
let second = 2;
for (let i = 3; i <= n; i++) {
let third = first + second;
first = second;
second = third;
}
return second;
};

48.7MB, 48ms