题解 | #跳台阶扩展问题#
跳台阶扩展问题
http://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387
/*第一种解法 递归*/
class Solution {
public:
int jumpFloorII(int number) {
if(number == 1 || number == 0)
return 1;
return 2 * jumpFloorII(number-1);
}
};
/*第二种解法 非递归硬算*/
class Solution {
public:
int jumpFloorII(int number) {
int res = 1;
if(number == 0 || number == 1)
return res;
for (int i = 2; i <= number; i++)
res *= 2;
return res;
}
};
/*第三种解法 位运算*/
class Solution {
public:
int jumpFloorII(int target) {
return 1 << (target - 1);
}
};