This is my LeetCode exercise.
You can see all question I did here.
leetcode
easy
Math
Dynamic Programming
Memoization
You are climbing a staircase. It takes n
steps to reach the top.
Each time you can either climb 1
or 2
steps. In how many distinct ways can you climb to the top?
Input: n = 2
Output: 2
Explanation: There are two ways to climb to the top.
Input: n = 3
Output: 3
Explanation: There are three ways to climb to the top.
int climbStairs(int n){
if(n < 3) return n;
int preOne = 0, preTwo = 1, result = 2;
for(int i = 2 ; i < n ; i++){
preOne = preTwo;
preTwo = result;
result = preOne + preTwo;
}
return result;
}
Space | Time |
---|---|
$O(N)$ | $O(N)$ |