package com.anuragkapur.ctci.recursionanddp;
/**
* @author: anuragkapur
* @since: 15/06/14
*/
public class Prob9_1_1_CountingStairsSteps {
/**
* Bottom-up DP approach
*
* Run time complexity: O(n)
*
* @param n
* @return
*/
public int count(int n) {
int n1 = 1;
int n2 = 2;
int n3 = 4;
if(n < 0) {
return 0;
} else if(n <= 2) {
return n;
} else if(n == 3) {
return 4;
} else {
int ways = 0;
for(int i=4; i<=n; i++) {
ways = n1 + n2 + n3;
n1 = n2;
n2 = n3;
n3 = ways;
}
return ways;
}
}
}