讲真的,这个我只会用递归去做,但是lintcode上面超时,所以只有在网上找了个动态规划的,虽然这个程序懂了,但是我觉得还是挺不容易的真正弄懂的话……
class Solution {
public:
/**
* @param n: An integer
* @return: An integer
*/
int climbStairs(int n) {
// write your code here
int a = 1, b = 1, k = 0;
if(n == 1 || n ==0){
return 1;
}
while(--n > 0){
k = a+b;
b = a;
a = k ;
}
return k;
}
};
原文:http://www.cnblogs.com/muziln/p/6517282.html