2019-03-28

第九题:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

思路:第一步跳1级,则剩下的有f(n-1)种跳法,

第一步跳2级,则剩下的有f(n-2)种跳法,

....

第一步跳n-1级,则剩下的有f(n-(n-1))=f(1)种跳法。

第一步跳n级,这也为1种跳法,即f(n-n)=f(0)=1种跳法。

所以,n级台阶的跳法f(n) = f(n-1)+f(n-2)+...+f(1)+f(0)。

同理,n-1级台阶的跳法f(n-1) = f(n-2)+f(n-3)+...+f(1)+f(0)。

所以,f(n)=2f(n-1),f(n-1)=2f(n-2),...,f(2)=f(2-1)+f(2-2)=f(1)+f(0)=2f(1),f(1)=f(1-1)=f(0)=1。等比数列:

所以f(n) = 2^(n-1)。

Python:

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloorII(self, number):
        # write code here
        return 2 ** (number - 1)

Java:

public class Solution {
    public int JumpFloorII(int target) {
        return (int)Math.pow(2, target-1);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • [笔试考试试题命令部分](总满分 72 分,每题 4 分) 1.一个目录中有很多文件(ls -l 查看时好多屏),...
    Chosen_One23阅读 251评论 0 0
  • 结构体是什么?数组是一个有顺序,并且类型相同的一组数据的集合,那么如果我们想把几个类型不同的数据放到一起怎么办呢?...
    zhangjvjv阅读 211评论 0 0
  • 逗号表达式逗号用来连接两个表达式,并以右边的表达式的值为结果。表达式1,表达式2,表达式3,...... ,表达式...
    zhangjvjv阅读 158评论 0 0
  • 布局前 1. 布局图 h4 h4的2级线段50的背驰结束点最有力度,1级线段即将形成,箭头从上到下依次是2级线段结...
    sony623728阅读 173评论 0 0
  • 90天了,还有最后10天,2.0就结束了。 到现在,早睡早起运动已经成为习惯。甚至不运动都不舒服了,不习惯早起阅读...
    扎高拉姆阅读 150评论 0 0