博客
关于我
剑指offer[9]——变态跳台阶
阅读量:568 次
发布时间:2019-03-10

本文共 460 字,大约阅读时间需要 1 分钟。

题目描述

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

这个题目是跳台阶的进阶版,其实跟大家分析一下,这道题其实比上一道题简单。在这道题目中,青蛙可以随意一次性跳n级台阶,也就是说如果青蛙想我先枚举一下前几级台阶的跳法数量:

第一级台阶:1=1(直接从平面跳过来)

第二级台阶:1+1=2(从平面跳过来或从第一级跳过来)

第三级台阶:1+2+1=4(从平面跳过来或从第一级或从第二级跳过来)

第四级台阶:1+2+4+1=8

第五级台阶:1+2+4+8+1=16

第六级台阶:1+2+4+8+16+1=32

第七级台阶:1+2+4+8+16+32+1=64

大家观察规律可以看出来下一级台阶的方法数量是前一级台阶的两倍,正好是2的次方:

\[jumpFloorII[n] = 2^{n-1}\]

所以我们就可以很简单的写出算法:

function jumpFloorII(number){    return Math.pow(2, number-1);}

转载地址:http://xxwvz.baihongyu.com/

你可能感兴趣的文章
LeetCode Text Justification
查看>>
LeetCode – Refresh – 4sum
查看>>
LeetCode地平线专场——第308场周赛题解
查看>>
LeetCode数据库题目汇总二(附答案)
查看>>
leetcode题解191-位1的个数
查看>>
leetcode题解206-反转链表
查看>>
leetcode题解8-盛最多水的容器
查看>>
LeetCode题解【打家劫舍】(中等难度)
查看>>
leftjoin多个on条件_MySQL:left join 避坑指南
查看>>
Less 日常用法
查看>>
lib/libstdc++.so.6: version `GLIBCXX_3.4.30‘ not found (required by /lib/x86_64-linux-gnu/libLLVM-15
查看>>
Libevent 事件管理和添加事件
查看>>
libiconv字符集转换库在C#中的使用
查看>>
libmpg123 解码库用法
查看>>
LibreOffice放映Slides时粗体字模糊的解决方案
查看>>
LibreOJ #6000. 「网络流 24 题」搭配飞行员
查看>>
LibreOJ 6277 数列分块入门 1(分块)
查看>>
libssh2编译部署详解
查看>>
libtorch中python中cuda可以使用,但是是c++环境中不行
查看>>
LibTorch之优化器
查看>>