09 变态跳台阶
变态跳台阶
http://www.nowcoder.com/questionTerminal/22243d016f6b47f2a6928b4313c85387
classSolution {
public:
int jumpFloorII(intnumber) {
// 从3开始:(n-2)*2 + (n-1)
// n: 0 1 2 3 4 05 06
// v: 1 1 2 4 8 16 32
if (number < 0) return 0;
if (number == 0) return 1;
int cur = 1, next = 2; // cur从index=1开始
while(--number) {
int temp = next;
next += cur * 2;
cur = temp;
}
return cur;
}
};