【剑指offer】09-3变态跳台阶

原创博文,转载请注明出处!

# 本文是牛客网《剑指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)

 

posted @ 2018-03-08 09:56  wanglei5205  阅读(185)  评论(0编辑  收藏  举报
levels of contents