leetcode 45. 跳跃游戏 II 思考分析
题目
给定一个非负整数数组,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
你的目标是使用最少的跳跃次数到达数组的最后一个位置。
示例:
输入: [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。
从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。
说明:
假设你总是可以到达数组的最后一个位置。
思考
下面看我的思路草图:
每次需要更新的参数:当前遍历的start、end,当前遍历范围中找到的最大的下一步的end。
迭代结束条件:end < nums.size()-1;
按照这个思路很快可以写出来代码:
class Solution {public:int jump(vector<int>& nums) { int start = 0;int end = 0;int step = 0;//只有end >= nums.size()-1,才退出whilewhile(end < nums.size()-1){//找到当前覆盖范围能到达的最远距离int max_distance = 0;for(int i = start;i <= end;i++){max_distance = max(nums[i]+i,max_distance);}//利用最远距离更新end和startstart = end + 1;end = max_distance;//步数加一step += 1;}return step;}
};
总结
贪心思想:每次记录你能够跳到的最远距离 max_distance !!!
下一次寻找的范围从上一次范围的end后面一个开始,到最远距离结束。
start = end + 1;
end = max_distance;
leetcode 45. 跳跃游戏 II 思考分析相关推荐
- Leetcode 45. 跳跃游戏 II
Leetcode 45. 跳跃游戏 II 题目 给你一个非负整数数组 nums ,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组 ...
- leetcode 45. 跳跃游戏 II 46. 全排列
leetcode 45. 跳跃游戏 II 46. 全排列 45. 跳跃游戏 II 难度中等1273收藏分享切换为英文接收动态反馈 给你一个非负整数数组 nums ,你最初位于数组的第一个位置. 数组中 ...
- LeetCode 45.跳跃游戏II
45.跳跃游戏 II 题目描述 给你一个非负整数数组 nums ,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. ...
- leetcode 45.跳跃游戏 II
一.题意 给出一个非负整数数组 nums ,数组中的每个元素代表在该位置可以跳跃的最大长度.使用最少的跳跃次数到达数组的最后一个位置.假设总是可以到达数组的最后一个位置. 二.解法 贪心算法. 解法一 ...
- LeetCode 45. 跳跃游戏 II(贪心/BFS,难)
文章目录 1. 题目 2. 解题 2.1 贪心 2.2 BFS 1. 题目 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的 ...
- leetcode 45跳跃游戏II
跳跃游戏II 核心思想:当前范围内走不到目的地,更新下一个范围.下一个范围是当前范围内能走到的最远点 class Solution {public:int jump(vector<int> ...
- leetcode —— 45. 跳跃游戏 II
给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 示例: 输入: [2,3,1,1,4] 输 ...
- Leetcode 45. 跳跃游戏 II (每日一题 20210922)
给你一个非负整数数组 nums ,你最初位于数组的第一个位置.数组中的每个元素代表你在该位置可以跳跃的最大长度.你的目标是使用最少的跳跃次数到达数组的最后一个位置.假设你总是可以到达数组的最后一个位置 ...
- LeetCode 45. 跳跃游戏 II Jump Game II
给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 示例: 输入: [2,3,1,1,4] 输 ...
最新文章
- linux 把根目录设置成777权限的补救方法
- html5拍照上传 java_如何使用HTML5实现拍照上传应用
- VTK:相互作用之PickableOff
- 那些年,我在游戏开发中改过的bug:靠不住的OS和SDK
- 在linux下搭建jira+svn[原创]
- 按任意字段排序的分页存储过程
- AI+RPA,让你的工作模式开启“新方式”
- 对标小米!华为P50 Pro+将有望搭载液态镜头技术
- text-overflow样式属性值ellipsis的使用方法
- Python爬虫(四)——小说下载器
- 「网络流 24 题」火星探险问题。
- 【转】Web 设计中最常用的 10 种色调以及它们的示例
- python画微信表情
- lep开发笔记 -- 内存泄漏
- 做游戏与web的区别 - 服务器篇【1】
- Property 'X' not found on type entity.Customer错误原因分析
- 三线性插值(Trilinear Interpolation)详解
- Win10 LTSC2021输入法失效解决办法
- Oracle SQL的多表查询 看这一篇文章就够了~
- 新唐NUC980使用记录:在用户应用中使用GPIO
热门文章
- 移动端适配的几种解决办法
- 查看linux电脑总内存,如何查看Linux系统中的内存使用情况的命令呢?
- springboot中得注解_Spring以及SpringBoot中的常用的注解小结
- gmat阅读.html,GMAT阅读长难句50句+参考译文.pdf
- 前端开发:小程序--第一步
- 如何把握好 transition 和 animation 的时序,创作描边按钮特效
- 百度联盟广告如何理解按父容器宽度
- python笔记30-docstring注释添加变量
- Python学习之类和实例
- win10 hyper-v 虚拟机ping不通宿主机问题