#70.Climbing Stairs [LeetCode Grind 75 in Java]
[Problem Link] https://leetcode.com/problems/climbing-stairs/
class Solution {
//memoization solution
//distinct ways to reach ith step
public int distinctWays(int i , int[] dp){
if(i == 0 || i == 1) return 1;
if(dp[i] != -1) return dp[i];
int one = distinctWays(i - 1 , dp);
int two = distinctWays(i - 2 , dp);
return dp[i] = one + two;
}
public int climbStairs(int n) {
int[] dp = new int[n + 1];
Arrays.fill(dp , -1);
return distinctWays(n , dp);
}
}