原创博文,转载请注明出处!
# 本文是牛客网《剑指offer》刷题笔记,笔记索引连接
1.题目
# 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
2.思路
# n=0,f(0)=0
# n=1,f(1)=1
# n=2,f(2)=2,{1,1;2}
# n=3,f(3)=4,{1,1,1;1,2;2,1;3;}
# n=4,f(4)=8,{1,1,1,1;1,1,2;1,2,1;2,1,1;2,2;1,3;3,1;4}
数学归纳法f(n)=2n-1
3.code
# 返回值:跳n级台阶的跳法数
# 参数:跳n级台阶
1 class Solution { 2 public: 3 int jumpFloorII(int number) { 4 if(number<=0) 5 return 0; 6 if(number==1) 7 return 1; 8 9 int temp=1; 10 for(int i=2;i<=number;++i){ 11 temp=2*temp; 12 } 13 14 return temp; 15 } 16 };
4.复杂度
时间复杂度O(n)