题目选自Leetcode 55. 跳跃游戏

这道题表面上不是求最值,但是可以改一改:

请问通过题目中的跳跃规则,最多能跳多远?如果能够越过最后一格,返回 true,否则返回 false。

所以解题关键在于求出能够跳到的最远距离。

题目描述:

解题思路:

不知道读者有没有发现,有关动态规划的问题,大多是让你求最值的,比如最长子序列,最小编辑距离,最长公共子串等等等。这就是规律,因为动态规划本身就是运筹学里的一种求最值的算法。

那么贪心算法作为特殊的动态规划也是一样,一般也是让你求个最值。这道题表面上不是求最值,但是可以改一改:

请问通过题目中的跳跃规则,最多能跳多远?如果能够越过最后一格,返回 true,否则返回 false。

所以说,这道题肯定可以用动态规划求解的。但是由于它比较简单,下一道题再用动态规划和贪心思路进行对比,现在直接上贪心的思路:

思路详解:

如果某一个作为 起跳点 的格子可以跳跃的距离是 3,那么表示后面 3 个格子都可以作为 起跳点
可以对每一个能作为 起跳点 的格子都尝试跳一次,把 能跳到最远的距离 不断更新
如果可以一直跳到最后,就成功了

解题代码:

bool canJump(int* nums, int numsSize){if(numsSize == 1) return true;if(numsSize > 1 && nums[0] == 0) return false;int maxd = nums[0];for(int i = 1 ; i < numsSize ; i++){if(maxd >= i) maxd = fmax(maxd,i+nums[i]);if(maxd >= numsSize-1) return true;}return false;
}

贪心——跳跃游戏(Leetcode 55)相关推荐

  1. LeetCode:跳跃游戏【55】

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

  2. 贪心——跳跃游戏 II(Leetcode 45)

    题目选自 Leetcode 45. 跳跃游戏 || 与跳跃游戏 | 的不同之处在于,我们需要求的是最少的跳跃次数~ 题目描述: 解题思路: 思想 就一句话:每次在上次能跳到的范围(end)内选择一个能 ...

  3. LeetCode算法题6:贪心 - 跳跃游戏

    文章目录 前言 贪心算法: 一.跳跃游戏 思路 二.跳跃游戏II 思路 总结 前言 贪心算法系列:(之前还有一篇文章描述的也是贪心算法:https://blog.csdn.net/Little_ant ...

  4. 当年意气不肯平,白发如丝叹何益。贪心跳跃游戏

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

  5. 每日一题_贪心_55_跳跃游戏

    前言 date: 8.10 今天终于早起了,困困困~~~ 题目来源: 55. 跳跃游戏(leetcode) 汇总文章 每日一题系列_算法提升 题目 题解 遍历一遍数组,并维护一个最右可到达边界的变量. ...

  6. LeetCode 55. 跳跃游戏(贪心)

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

  7. 贪心法——LeetCode 55 跳跃游戏

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

  8. leetcode:55. 跳跃游戏【经典贪心】

    分析 维护当前走到的位置,以及当前能走的最大区间内下一次走到的最远位置maxPos 当前能走的位置就是[cur, maxPos]但是在走的过程中,边走边看下一次的maxPos,然后当cur走到上一个m ...

  9. LeetCode 1871. 跳跃游戏 VII(贪心)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始的二进制字符串 s 和两个整数 minJump 和 maxJump . 一开始,你在下标 0 处,且该位置的值一定为 '0' . ...

最新文章

  1. 强烈推荐一款Python可视化神器!
  2. 三星emcp型号详解_嵌入式存储产品发展趋势:uMCP取代eMCP序幕拉开
  3. python【力扣LeetCode算法题库】151- 翻转字符串里的单词
  4. Tautology--POJ 3295
  5. 音高和基频(Pitch and F0)
  6. J-Link该如何升级固件?
  7. 公司c语言面试题目,c语言面试最必考的十道试题,求职必看!!!
  8. static变量和static函数的用法摘抄
  9. acl的access-list命令使用详解
  10. AForge.net简介和认识
  11. linux Centos 服务器之间文件共享挂载
  12. python短视频教程_Python技巧:10万+的短视频被批量生产了,Python表示不服
  13. 九型人格,工作中的好帮手
  14. 什么是JavaScript异步编程?
  15. 微信小程序实现电商购物
  16. 镜头超声波马达的工作原理
  17. dell服务器安装系统加载驱动,DELL服务器使用U盘加载驱动安装Win2003.doc
  18. CSS list-style属性控制li标签样式
  19. 锐龙r7 5800h和酷睿i7 11800h性能差多少 锐龙r75800h和i711800h跑分
  20. Win32游戏制作之---Bizzard

热门文章

  1. C# 操作MSSQL数据库类
  2. springboot增删改查案例_大神基于SpringBoot开发一个Restful服务,实现增删改查功能...
  3. linux内核锁死怎么解决_解决Linux内核中的2038年问题
  4. win10iot 编程_使用DIY Blynk板对IoT按钮进行编程
  5. java同事只有竞争吗_如何防止同事竞争破坏公司文化
  6. (15)HTML面试题集锦
  7. bootstrap-table使用 带条件查询翻页及数据更新的问题。
  8. 被坑了 | 那个写公众号,开网店的小小,被花式坑了!
  9. 学习学习SpringSecurity
  10. 设计模式 迪米特法则