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