public int climbStairs(int n) {

	if (n == 0) {
	    return 1;
	}

	if (n == 1) {
	    return 1;
	}

	if (dp[n] != 0) {
	    return dp[n];
	}

	int result = climbStairs(n - 1) + climbStairs(n - 2);
	dp[n] = result;
	return result;
    }