public static int climbStairs(int n) {
		if (n == 1 || n == 0)
			return 1;
		int steps = 0;
		int step1 = 0;
		int step2 = 0;
		if (map.containsKey(n - 1))
			step1 = map.get(n - 1);
		else
			step1 = climbStairs(n - 1);
		if (map.containsKey(n - 2))
			step2 = map.get(n - 2);
		else
			step2 = climbStairs(n - 2);

		steps += step1 + step2;
		map.put(n - 1, step1);
		map.put(n - 2, step2);
		return steps;
	}