0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LeetCode初级算法-动态规划01:爬楼梯

电子设计 来源:电子设计 作者:电子设计 2020-12-10 22:21 次阅读

LeetCode初级算法--动态规划01:爬楼梯

一、引子

这是由LeetCode官方推出的的经典面试题目清单~
这个模块对应的是探索的初级算法~旨在帮助入门算法。我们第一遍刷的是leetcode推荐的题目。

二、题目

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例1:

输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1 阶 + 1 阶
2.  2 阶

示例2:

输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1.  1 阶 + 1 阶 + 1 阶
2.  1 阶 + 2 阶
3.  2 阶 + 1 阶

1、思路

首先我可以确切的告诉你,这种简单的爬楼梯也是一个斐波那契数列,不信你自己从简单的数1,2,3..自己推论一下。

接着,我们来讨论一般情况。我们把n级台阶时的跳法看成是n的函数,记为f(n)。当n>2时,第一次跳的时候就有两种不同的选择:一是第一次只跳1级,此时跳法数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1);另外一种选择是跳一次跳2级,此时跳法数目等于后面剩下的n-2级台阶的跳法数目,即为f(n-2)。因此n级台阶的不同跳法的总数f(n)=f(n-1)+f(n-2)。分析到这里,我们不难看出这实际上就是斐波那契数列了。

2、编程实现

python

class Solution(object):
    def climbStairs(self, n):
        """
        :type n: int
        :rtype: int
        """
        if n == 1:
            return 1
        a = 1
        b = 1
        for i in range(1,n):
            a , b = b , a+b
        return b

本文由博客一文多发平台 OpenWrite 发布!

审核编辑 黄昊宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1791

    文章

    47280

    浏览量

    238519
  • 机器学习
    +关注

    关注

    66

    文章

    8418

    浏览量

    132647
  • 深度学习
    +关注

    关注

    73

    文章

    5503

    浏览量

    121170
  • leetcode
    +关注

    关注

    0

    文章

    20

    浏览量

    2328
收藏 人收藏

    评论

    相关推荐

    Google日本子公司Schaft发布人形两足机器人

    Schaft机器人令人惊叹地自己走上了讲台,还会自己清洁楼梯,在踩到钢管这样的物体之后也可以保持平衡,可以爬楼梯和擦楼梯,背负最多60公斤的重物。
    发表于 04-11 10:41 2392次阅读

    LabVIEW中时怎么导入图片的?

    `比如说爬楼梯的这个控件,是怎么把那个温度计变成那个爬梯子的小人的?那个图片是怎么转的?还有设置背景的时候,我想导一个图片进来做背景的话,怎么把图片导进来?请指教!`
    发表于 12-15 22:58

    动态规划算法

    动态规划算法资料。
    发表于 08-30 20:44

    LCS的动态规划算法

    LCS的动态规划算法(自底向上)
    发表于 05-25 15:06

    动态规划与贪婪法题的背包问题总结

    LeetCode & 剑指offer刷题】动态规划与贪婪法题16:背包问题总结
    发表于 06-09 16:44

    动态规划算法和贪心算法的区别与联系

     动态规划算法和贪心算法,这两种算法都是选择性算法,就是从一个候选集合中选择适当的元素加入解集合。两种算法的应用背景很相近,针对具体问题,有
    发表于 11-30 10:22 7.6w次阅读
    <b class='flag-5'>动态规划算法</b>和贪心<b class='flag-5'>算法</b>的区别与联系

    伯克利和CMU联合开发能像人类一样行走的腿形机器人ATRIAS

    还记得波士顿动力那些灵活的机器人么,避障碍爬楼梯甚至送快递,在各种地形随意穿梭。
    的头像 发表于 07-03 14:40 3996次阅读

    这款爬楼快递机器人,可以让你不用下楼,快递直接送进家

    业内专家在观看了“爬楼梯快递派送机器人”演示后认为,相比外界所知道的京东派送快递机器人,这款机器人的区别在于“可以在楼宇间穿行”,而且“履楼梯如平地”。
    发表于 07-26 15:33 6655次阅读

    自制爬楼小车diy全过程

    近日心血来潮用Makeblock的零件搭了个自动爬楼梯的小车
    的头像 发表于 09-12 08:30 2.3w次阅读

    爬楼梯的快递机器人如果量产 快递小哥真的要失业了

    最近,杭州电子科技大学的学生研发出了一款能爬楼梯的快递机器人,它可以先给快递买家发短信,得到“在家”确认后再出发送快递,并且还会告知对方预计达到时间,如果这款快递机器人能量产的话,恐怕快递小哥真的要失业了。
    发表于 01-30 13:36 1634次阅读

    如何实现双足机器人爬楼梯的步态规划与参数优化

    爬楼梯时的步态规划问题作了以下几方面研究工作: 首先,回顾了双足机器人的发展历史和研究现状,并对目前主动型双足机器人平地和爬楼梯的步态规划方法分别进行总结,介绍了本文课题来源和主要研究
    发表于 04-07 16:27 33次下载
    如何实现双足机器人<b class='flag-5'>爬楼梯</b>的步态<b class='flag-5'>规划</b>与参数优化

    自动调整平衡的爬楼梯机器人设计

    应用中使用:   它们无法自行站立,爬楼梯或克服障碍。   如果碰到或滑到光滑的表面上,它们很容易掉落,因为它们依靠摩擦来保持平衡。     本研究的第一部分提出了一种新颖的设计来解决上述与爬楼梯,站立和障碍有关的问题。  
    的头像 发表于 12-25 16:58 2697次阅读

    如何利用Arduino UNO制作一个爬楼梯机器人

    本文将向您展示如何制作一个非常基本的爬楼梯机器人。这是我们为ServoCity+Actobotics爬楼梯挑战而建造的楼梯熊。事实证明,最后的效果非常棒!
    的头像 发表于 04-03 15:39 4264次阅读
    如何利用Arduino UNO制作一个<b class='flag-5'>爬楼梯</b>机器人

    爬楼梯,可旋转90度立足的电动车

    电动车都是滚动式的向前运行,那么有没有既是轮胎滚动运动,又可以变成爬楼梯的电动汽车呢?下面图的这个结构就可以完美实现,但要真正地成为量产产品,尚需时日。
    的头像 发表于 04-06 11:43 2297次阅读
    可<b class='flag-5'>爬楼梯</b>,可旋转90度立足的电动车

    制作一个爬楼梯机器人

    电子发烧友网站提供《制作一个爬楼梯机器人.zip》资料免费下载
    发表于 10-18 09:14 1次下载
    制作一个<b class='flag-5'>爬楼梯</b>机器人