Python|跳跃游戏

前言

贪心算法是指在对问题求解时,不从整体最优考虑,只是局部的最优考虑。所以贪心算法可能不能达到最优解,贪心算法也有正确的时候,求最小生成树的Prim算法和Kruskal算法都是漂亮的贪心算法。贪心算法的基本思路是从问题的某一个初始解出发一步一步地进行,根据某个优化测度,每一步都要确保能获得局部最优解。

问题描述

给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标。

示例1:         示例2:

输入:nums = [2,3,1,1,4]    输入:nunms = [3,2,1,0,4]

输出:true          输出:false

解决方案

一般碰到能否走完,走的更远等题目,优先考虑贪心和动态规划两种方式,此题在这里讲的贪心,贪心算法更适合这一道题。示例1:此题的意思是当从数组下标为0的位置开始,下标为0的位置上的元素为2就可以跳一次或两次,如果跳一次就会跳到下标为1的位置,1位置的元素为3,那么现在可以跳跃1次2次3次,不管跳几次最终都能达到终点;如果跳两次,也可以到达终点。示例2:当从下标为0的位置开始跳,可以跳1次或2次或3次,但不管跳几次都会跳到元素0的位置,然后就跳不动了,就不能跳到终点。通过分析发现凡是数组中不含0的数组都可以跳到最后一个元素,如果数组中含0,那么就不能跳到最后一个元素。从下图可以清楚的看到过程。

红色代表起始跳2次,蓝色代表起始跳1次,跳的次数小于等于该位置的元素大小。

结语

此题运用贪心法就比较容易理解,就容易理解题目意思。可能还有更简单的算法,后期我会进一步研究。

实习编辑:衡辉

稿件来源:深度学习与文旅应用实验室(DLETA)

(0)

相关推荐

  • 理解贪心算法

    从前有一只鹅,一天可以下两个金蛋,但是直接杀了他可以拿到二十个金蛋. 问在21天内拿到尽量多的金蛋? 动态规划..前20天不杀,最后一天杀.40个 贪心..第一天下蛋,得到一个金蛋 第一天杀,得到20 ...

  • ​LeetCode刷题实战312:戳气球

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • 图解:什么是堆排序?

    二叉堆(Binary Heap)是一颗特殊的完全二叉树,一般分为大顶堆和小顶堆,我就不啰嗦啦!具体内容你可以看一下 图解:什么是二叉堆? 堆排序 要学习今天的堆排序(Heap Sort),我们以一个数 ...

  • ​LeetCode刷题实战41:缺失的第一个正数

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战299:猜数字游戏

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • 利用python开发游戏

    今天我们利用python的tkinter来制作几个简单小游戏 首先我们了解下tkinter Tkinter: Tkinter模块(TK接口)是Python的标准Tk GUI工具包的接口.Tkinter ...

  • 源码精灵游戏小程序,python入门游戏,点开既玩

    沐沐带你发现好游戏! 丑姐儿今天给大家伙儿介绍一款小游戏, 名字叫做源码精灵, 看着应该是一款商业化的小游戏, 不过也是良心制作的了, 很Q萌. 这一款和头脑风暴有一点点儿类似的地方就是答题, 是的莫 ...

  • Python |石子游戏的最大得分

    引言 力扣(LeetCode),未来不止于此! 问题描述 你正在玩一个单人游戏,面前放置着大小分别为 a.b和c的三堆石子. 每回合你都要从两个不同的非空堆 中取出一颗石子,并在得分上加 1 分.当存 ...

  • steam喜加一唯美横版平台跳跃游戏逐光之旅

    逐光之旅Lumione可以在steam和NS上玩到了同时也有免费的demo版可以下载 这是一款深海冒险题材的横版平台跳跃游戏.和主角Glimmer一起在寻找光的旅程中,感受唯美缤纷深海地貌的同时,挑战 ...

  • 《超级磁力机器人》体验报告:值得一试的硬核平台跳跃游戏

    前言 <Super Magbot/超级磁力机器人>是一款与知名游戏<蔚蓝>十分相像的游戏.<Super Magbot>不仅和<蔚蓝>一样同为像素风格的画 ...

  • 唯美的童话冒险——横版跳跃游戏《花之灵》简评

    <花之灵>是一款典型的横版跳跃游戏,兼具轻度解谜玩法.玩家在游戏中扮演的精灵穿梭跳跃于花朵与树叶之间,解决谜题.闯过关卡.游戏展现出令人沉醉的自然之美,即便有一些略有出戏感觉的会踢人的机器 ...

  • Python|随机函数——纸牌游戏的发牌机制

    问题描述在手机日益重要的当今社会,有很多人都在使用手机上的小程序在玩着各类纸牌游戏.那么今天,我讲述的是用python实现纸牌游戏中的一种--"七王五二三"的发牌.示例:运用ran ...

  • Python游戏编程(Pygame)

    安装Pygame pip install pygame 1 C:\Users> pip install pygame Collecting pygame Downloading https:// ...

  • 用 Python 制作一个迷宫游戏

    相信大家都玩过迷宫的游戏,对于简单的迷宫,我们可以一眼就看出通路,但是对于复杂的迷宫,可能要仔细寻找好久,甚至耗费数天,然后可能还要分别从入口和出口两头寻找才能找的到通路,甚至也可能找不到通路. 虽然 ...