You are climbing a stair case. It takes n steps to reach to the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
Dynamic Programming
翻译:一次走一到两步,有多少走法到达山顶。
Code:
/**
*
*/
package From61;
/**
* @author MohnSnow
* @time 2015年7月1日 上午10:28:24
*
*/
public class LeetCode70 {
/**
* @param argsmengdx
* -fnst
*/
//196msAC---完全意义上的一次性编译通过
//其实和Fib算法类似
public static int climbStairs(int n) {
if (n <= 0) {
return 0;
} else if (n == 1) {
return 1;
} else if (n == 2) {
return 2;
} else {
int temp1 = 1;
int temp2 = 2;
int result = 0;
for (int i = 3; i <= n; i++) {
result = temp1 + temp2;
temp1 = temp2;
temp2 = result;
}
return result;
}
}
public static void main(String[] args) {
int n = 3;
System.out.println("climbStairs: " + climbStairs(n));
}
}