跳子游戏--最少跳跃次数
给你一个非负整数数组 nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。
假设你总是可以到达数组的最后一个位置。
正向查找可到达的最大位置
如果我们「贪心」地进行正向查找,每次找到可到达的最远位置,就可以在线性时间内得到最少的跳跃次数。
在具体的实现中,我们维护当前能够到达的最大下标位置,记为边界。我们从左到右遍历数组,到达边界时,更新边界并将跳跃次数增加 1。
在遍历数组时,我们不访问最后一个元素,这是因为在访问最后一个元素之前,我们的边界一定大于等于最后一个位置,否则就无法跳到最后一个位置了。如果访问最后一个元素,在边界正好为最后一个位置的情况下,我们会增加一次「不必要的跳跃次数」,因此我们不必访问最后一个元素。
class Solution:def jump(self, nums):n = len(nums)maxPos, end, step = 0, 0, 0for i in range(n - 1):if maxPos >= i:maxPos = max(maxPos, i + nums[i])if i == end:end = maxPosstep += 1return step
输入: nums = [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。
跳子游戏--最少跳跃次数相关推荐
- LeetCode 1654. 到家的最少跳跃次数(BFS)
文章目录 1. 题目 2. 解题 1. 题目 有一只跳蚤的家在数轴上的位置 x 处.请你帮助它从位置 0 出发,到达它的家. 跳蚤跳跃的规则如下: 它可以 往前 跳恰好 a 个位置(即往右跳). 它可 ...
- 跳跃游戏2(求最少跳跃次数)Python解法
给你一个非负整数数组 nums ,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 假设你总是可以到达数组的最后一 ...
- 贪心:jump 游戏(获取最少跳跃的次数以及跳跃路径)
一个数组存储了非负整型数据,数组中的第i个元素a[i],代表了可以从数组第i个 位置最多向前跳跃a[i]步;已知数组各元素的情况下,求是否可以从数组的第0个位置跳跃到数组的最后一个元素的位置,返回最少 ...
- 贪心法—— LeetCode45 跳跃游戏II(跳跃游戏进阶版)
跳跃游戏II 题目: 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 示例: 输入: [2 ...
- LeetCode 2139. 得到目标值的最少行动次数(贪心)
文章目录 1. 题目 2. 解题 1. 题目 你正在玩一个整数游戏.从整数 1 开始,期望得到整数 target . 在一次行动中,你可以做下述两种操作之一: 递增,将当前整数的值加 1(即, x = ...
- 力扣276 周赛 2139. 得到目标值的最少行动次数
2139. 得到目标值的最少行动次数 题目描述: 你正在玩一个整数游戏.从整数 1 开始,期望得到整数 target . 在一次行动中,你可以做下述两种操作之一: 递增,将当前整数的值加 1(即, x ...
- LeetCode简单题之使每位学生都有座位的最少移动次数
题目 一个房间里有 n 个座位和 n 名学生,房间用一个数轴表示.给你一个长度为 n 的数组 seats ,其中 seats[i] 是第 i 个座位的位置.同时给你一个长度为 n 的数组 studen ...
- POJ2431贪心(最少加油次数)
题意: 给一个终点,然后给你一个卡车距离终点的距离,还有其他个加油站距离终点的距离,然后每走一个单位距离要花费一个单位油,卡车的邮箱是无限大的,而每个加油站的油量是有限的,整个路径是一个 ...
- 1049-飞机最少换乘次数问题
描述 设有n个城市,编号为0-n-1,m条单向航线的起点和终点由输入提供,寻找一条换乘次数最少的线路方案. 输入 第一行为三个整数n.m.v,表示城市数.单向航线数和起点城市.以下m行每行两个整数,表 ...
最新文章
- python括号配对问题_使用Python的栈实现括号匹配算法
- Oracle修改监听IP地址
- 【深度学习】医学图像处理之视杯视盘分割调研分析
- 有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取...
- 记一次Oracle数据故障排除过程
- 算法优化:动态规划加速,货物运输问题,四边形不等式, 从O(n^2)到O(n^3)
- Android ViewFlipper实现多个布局手势切换的效果
- 静态路由与动态路由概念及实例
- 【Ubuntu-Opencv】Ubuntu14.04 Opencv3.3.0 使用中出现OpenCV Error: Unspecified error
- 魔方财务对接码支付插件
- Oracle 客户端连接server 的方法
- sysbench线程数_分享3个Sysbench性能压测脚本及多并发压测过程
- 显示器用软件调整亮度_如何使用正确的软件调整电脑显示器的亮度
- MSP430G2553学习笔记
- (附源码)node.js游云旅游网站 毕业设计 231547
- mysql查看分片键
- 关于MAXIMO数据限制代码的理解
- Ubuntu 18.04 安装 NVIDIA 显卡驱动
- 计算机桌面怎么能添加文字,如何实现在电脑桌面上添加文字提醒
- pcd,obj,mtl文件格式解析