[LintCode] Climbing Stairs II
A child is running up a staircase with n
steps, and can hop either 1 step, 2 steps, or 3 steps at a time. Implement a method to count how many possible ways the child can run up the stairs.
Example
n=3
1+1+1=2+1=1+2=3=3
return 4
Almost identical with Climbing Stairs.
1 public class Solution { 2 public int climbStairs2(int n) { 3 int[] f = new int[n + 1]; 4 f[0] = 1; 5 6 for(int i = 1; i <= n; i++){ 7 if(i - 3 >= 0){ 8 f[i] = f[i - 1] + f[i - 2] + f[i - 3]; 9 } 10 else if(i - 2 >= 0){ 11 f[i] = f[i - 1] + f[i - 2]; 12 } 13 else if(i - 1 >= 0){ 14 f[i] = f[i - 1]; 15 } 16 } 17 return f[n]; 18 } 19 }
Related Problems