题意:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。
求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。
方法一:
找规律
思路:
class Solution { public: int jumpFloorII(int number) { return 1<<(number-1);//计算2^(number-1) } };
时间复杂度:空间复杂度:
方法二:
模拟优化
思路:根据方法一的思路:
第 i 项=第 i-1 项 * 2。
累成即可。
class Solution { public: int jumpFloorII(int number) { int res=1; for(int i=2;i<=number;i++){//累乘2 res*=2; } return res; } };
时间复杂度:空间复杂度: