Leetcode45

链接:力扣 。

题目:

给定一个非负整数数组nums,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。

说明:

1 <= nums.length <= 104
    0 <= nums[i] <= 1000

示例1:

输入:nums = [2,3,1,1,4]
输出:2
解释:跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。

示例2:

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

思路:

本题比Leetcode55难了不少,但思路是相似的,还是要看最大覆盖范围。
本题要计算最小步数,那么就要想清楚什么时候步数才一定要加一呢?
贪心的思路,局部最优:当前可移动距离尽可能多走,如果还没到终点,步数再加一。整体最优:一步尽可能多走,从而达到最小步数。
思路虽然是这样,但在写代码的时候还不能真的就能跳多远跳远,那样就不知道下一步最远能跳到哪里了。所以真正解题的时候,要从覆盖范围出发,不管怎么跳,覆盖范围内一定是可以跳到的,以最小的步数增加覆盖范围,覆盖范围一旦覆盖了终点,得到的就是最小步数!需要统计两个覆盖范围,当前这一步的最大覆盖和下一步最大覆盖。
如果移动下标达到了当前这一步的最大覆盖最远距离了,还没有到终点的话,那么就必须再走一步来增加覆盖范围,直到覆盖范围覆盖了终点。

参考代码:

class Solution {
public:int jump(vector<int>& nums) {if (nums.size() == 1) {return 0;}int curRange = 0, nextRange = 0;int result = 0;for (int i = 0; i < nums.size(); i++) {nextRange = max(i + nums[i], nextRange);if (nextRange >= nums.size() - 1) {result++;break;}if (i == curRange) {result++;curRange = nextRange;}}return result;}
};

力扣刷题 DAY_80 贪心相关推荐

  1. LeetCode力扣刷题——简单易懂的贪心算法

    贪心 一.算法解释 采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的. 贪心算法问题需要满足的条件: (1)最优子结构:规模较大的问题的解由规模较小的子问题的解组成,规模较 ...

  2. 力扣刷题pdf(java版本,内含暗黑版和光明版),都在这里了

    BAT大佬力扣刷题pdf,都在这里了! ​相信很多小伙伴刷题的时候面对力扣上近两千道题目,感觉无从下手! 我找了很久,今天终于让找到了Java版leetcode算法题解笔记,强烈建议先按照本篇介绍pd ...

  3. 教你创建电脑、手机同步的markdown云笔记--力扣刷题力荐!

    开篇先致歉 其他不谈,开篇必须先给各位读者道个歉,年后工作上比较忙,加上最近闲暇的时间都用来在力扣上刷算法题了,导致公众号断更有些严重啊.再加上年后将健身减重提上了日程,时间上就更显的捉襟见肘了. 不 ...

  4. 《剑指Offer》力扣刷题笔记(03-10)

    <剑指Offer>力扣刷题笔记(03-10) 最近确实有点闲,想在进组搬砖之前找点有意义的事干,于是,就开始刷<剑指Offer>.<程序员面试金典>等书上的题目,也 ...

  5. 力扣刷题之二叉树的层序遍历

                                                      Welcome to you, 每日一刷系列 二叉树的层序遍历 二叉树的层序遍历II 二叉树的右视图 ...

  6. 『力扣刷题』5275_找出井字棋的获胜者 解题代码

    LeetCode-cn 力扣刷题 LeetCode-cn力扣刷题目录 165周赛 5275_找出井字棋的获胜者 * 5275. 找出井字棋的获胜者 显示英文描述* 用户通过次数0* 用户尝试次数0* ...

  7. 『力扣刷题』5276_不浪费原料的汉堡制作方案 解题代码

    LeetCode-cn 力扣刷题 LeetCode-cn力扣刷题目录 165周赛 5276_不浪费原料的汉堡制作方案 * 5276. 不浪费原料的汉堡制作方案 显示英文描述* 用户通过次数212* 用 ...

  8. 『力扣刷题』5238_找出给定方程的正整数解 解题代码

    html: embed_local_images: true embed_svg: true offline: true toc: undefined print_background: false ...

  9. 力扣刷题全局变量WA,局部变量AC的问题

    力扣刷题全局变量WA,局部变量AC问题 题目 原因 题目 golang力扣leetcode 1219.黄金矿工 原因 今天在刷题的时候,遇到一个现象,本地跑测试全部通过,一提交就错错错,非常离谱 然后 ...

  10. 力扣刷题-前k个高频元素

    力扣刷题-前k个高频元素 题目: 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素.你可以按 任意顺序 返回答案. 示例 1: 输入: nums = [1,1,1,2 ...

最新文章

  1. 随机文件处理函数应用
  2. Stack around the variable 'date' was corrupted.
  3. 一个 Dubbo 服务启动要两个小时
  4. Hbase WALs(HLog) 文件存储,查看
  5. C语言CASE如何用switch,switch case 中如何使用枚举
  6. wsgiref — WSGI Utilities and Reference Implementation¶
  7. 【ElasticSearch】ElasticSearch 中使用衰减函数来完美你的搜索结果
  8. android 怎么获取app 字体颜色,Android APP使用自定义字体实现方法
  9. 图像哈希二进制字符串相互转换以及flatten()的用法
  10. AutoCAD2020简体中文语言包
  11. RFID全面梳理(超高频)
  12. 游戏项目导出AAB包上传谷歌提示超过150M的解决方案
  13. c语言简单的对话机器人软件,示例:聊天机器人
  14. 模电_第六章_负反馈电路
  15. 范莎学院 计算机,加拿大范莎学院
  16. CF831A-Unimodal Array(单峰阵列)
  17. 用于信号处理的Xilinx FPGA XC7K325T PCIeX8 FMC处理板卡
  18. 资质认证|棱镜七彩成功通过CMMI 3级认证,研发能力获国际权威机构认可!
  19. 2018SCUACM Training1 贪心
  20. 步进电机和伺服电机优缺点

热门文章

  1. Linux GDB的实现原理
  2. 技校学计算机当兵,学员(部分)作业选登:《两年计划》读完技校,考上中专,然后去当兵(图)...
  3. JEECG架构讲解及使用
  4. 微信公众号申请最新流程
  5. Python百度文库爬虫之doc文件
  6. SCI写作之方法部分method
  7. Android FileProvider详细解析和踩坑指南
  8. 2014中国互联网安全大会
  9. 骗子QQ微信在线查询系统网站源码
  10. 在docker中运行自己的eureka服务端