55 Jump Game

思路:贪心算法,每次记录可以跳到的最远距离。

class Solution {
public:bool canJump(vector<int>& nums) {if(nums.empty()) return false;int reach = 0;for(int i = 0; i <= reach && i < nums.size(); ++i) {   //注意reach=0的情况reach = max(reach, nums[i]+i);}if(reach >= nums.size() - 1)return true;return false;}
};

45 Jump Game II

要理解这个算法,首先明白,这个题只要我们求跳数,怎么跳,最后距离是多少,都没让求的。
大牛这个算法的思想主要是,扫描数组(废话。。。),以确定当前最远能覆盖的节点,放入curr。然后继续扫描,直到当前的路程超过了上一次算出的覆盖范围,那么更新覆盖范围,同时更新条数,因为我们是经过了多一跳才能继续前进的。形象地说,这个是在争取每跳最远的greedy。

class Solution {
public:int jump(vector<int>& nums) {int res = 0;int last = 0;int cur = 0;for(int i = 0; i < nums.size(); ++i) {if(i > last) {last = cur;++res;                  //记录跳跃步数}cur = max(cur, i+nums[i]);       //当前可以跳到的最大范围,贪心算法}return res;}
};

这道题让我们明白一个道理:
不要做无必要的计算。
对了,有同学会问,那为啥要用last,直接用cur跳不就行了。直接用cur跳那每次都是跳最远的,但是最优路径不一定是这样。

55/45 Jump Game 跳跃游戏相关推荐

  1. C++jump game跳跃游戏的算法(附完整源码)

    C++jump game跳跃游戏的算法 C++实现jump game跳跃游戏的算法完整源码(定义,实现,main函数测试) C++实现jump game跳跃游戏的算法完整源码(定义,实现,main函数 ...

  2. 55. Jump Game(跳跃游戏)

    题目链接:https://leetcode.com/problems/jump-game/ 此题的思路同Leetcode45,jumpGame2. Leetcode 45 就是用一个值来保存最大右边界 ...

  3. 贪心:Jump Game 跳跃游戏

    一个数组存储了非负整型数据,数组中的第i个元素a[i],代表了可以从数组第i个 位置最多向前跳跃a[i]步;已知数组各元素的情况下,求是否可以从数组的第0个位置跳跃到数组的最后一个元素的位置,返回是t ...

  4. 《中英双解》leetCode Jump Game(跳跃游戏)

    You are given an integer array nums. You are initially positioned at the array's first index, and ea ...

  5. 【LeetCode 55】【LeetCode 45】 跳跃游戏

    55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4] ...

  6. Leetcode-D21-动态规划(二刷)-55. 跳跃游戏45. 跳跃游戏 II

    我导好好啊!!!刚找完他!充满动力,给个大标题! 55. 跳跃游戏 1.感觉不像是一道很明显的动态规划问题. 2.看下答案和自己的思路是否一致.和我的想法一下,敲代码叭! 3.通过了,但这次好慢呀 c ...

  7. _28LeetCode代码随想录算法训练营第二十八天-贪心算法 | 122.买卖股票的最佳时机II 、55.跳跃游戏、45.跳跃游戏II

    _28LeetCode代码随想录算法训练营第二十八天-贪心算法 | 122.买卖股票的最佳时机II .55.跳跃游戏.45.跳跃游戏II 题目列表 122.买卖股票的最佳时机II 55.跳跃游戏 45 ...

  8. 力扣记录:贪心算法3较难(1)区间问题——55 跳跃游戏,45 跳跃游戏II,452 用最少数量的箭引爆气球,435 无重叠区间,763 划分字母区间,56 合并区间

    本次题目 55 跳跃游戏 45 跳跃游戏II 452 用最少数量的箭引爆气球 435 无重叠区间 763 划分字母区间 56 合并区间 55 跳跃游戏 局部最优:不管每次跳多少步,取最大跳跃步数,若覆 ...

  9. LeetCode—55.跳跃游戏(Jump Game)——分析及代码(C++)

    LeetCode-55.跳跃游戏[Jump Game]--分析及代码[C++] 一.题目 二.分析及代码 1. 贪心 (1)思路 (2)代码(简洁) (3)代码(高效) (4)结果 三.其他 一.题目 ...

最新文章

  1. Go 学习笔记(24)— 并发(03)[通道特点、通道声明、通道发送/接收/关闭、单向通道]
  2. CTF---Web入门第一题 what a fuck!这是什么鬼东西?
  3. 长短期记忆网络_昆明理工大学刘可真、苟家萁、骆钊等:粒子群优化长短期记忆网络模型如何进一步提高变压器油中溶解气体浓度的精准预测?...
  4. OpenCV+3计算机视觉++Python语言实现+第二版pdf
  5. linux firefox 脚本,linux下调整firefox的有用设置(高分辨率下需要)
  6. PHP中如何判断属性类型,php – 如何获取doctrine实体属性的类型
  7. 细数python标准库中低调的模块
  8. ATP-EMTP电缆LCC模型中相数与电缆数的设置
  9. 构建基于浏览器的Web P2P网络直播
  10. 方兴东:让曲线告诉创业的痛楚和狂喜
  11. 三门问题与神奇的贝叶斯大脑
  12. VMBox CentOS安装记录
  13. 量子理论学习:概率幅
  14. 消息中心构架设计说明书
  15. 从树根互联、睿视智觉、Strikingly这3家企业浅窥AWS中国
  16. ChatGPT的各项超能力从哪儿来?万字拆解追溯技术路线图来了!
  17. 各省、地级市-2020春运期间高德地图人口迁徙数据-excel、shp格式
  18. 【单片机毕业设计】【mcuclub-jj-053】基于单片机的宠物喂食器的设计
  19. 常见的移动端兼容问题以及解决方案
  20. VSCode+Evernote+markdown

热门文章

  1. 创维E900V22C/E900V22D_S905L3(L3B)_安卓9.0_通刷卡刷固件
  2. 【C语言篇】学习计算机之路——第一个程序
  3. 【nlp】天池学习赛-新闻文本分类-深度学习1
  4. Hbase常用表操作
  5. 华南师大王璋、广东省中医院黄清春、黄闰月等揭示痛风患者肠道菌群特征
  6. 电力系统IEEE33节点Simulink仿真研究(Matlab实现)
  7. 【一朵花儿——效果+代码 Html+JavaScript+CSS】
  8. 远程连接mysql(linux)2003 - Can‘t connect to Mysql server on ‘xxx.xxx.xxx.xxx‘(10061“Unknown error“)
  9. 爬虫---ins注册脚本
  10. 利用计算机炒股,计算机辅助炒股方法及系统