给定一系列非负整数, 每个值代表从此下标可以向前跳跃的最远距离, 试求出跳跃到数组尾端需要的最少步骤.

如给定 [2,3,1,1,4], 返回2. (从下标0跳到1, 从1跳到下标4).

算法描述: 贪心算法, 从头开始遍历数组, 记录通过ret+1步能够到达的最远下标为curr, 记录通过ret步能够到达的最远下标为last, 当遍历到的下标i大于上一次能够到达的最远下标last时, 更新last为curr, 并对ret加1, 数组遍历完成后返回ret.

代码:

 1 class Solution {
 2 public:
 3     int jump(int A[], int n) {
 4         int last = 0;
 5         int curr = 0;
 6         int ret = 0;
 7         for (int i = 0; i < n; i++) {
 8             if (i > last) {
 9                 if (last == curr && last < n - 1) return -1;
10                 last = curr;
11                 ret++;
12             }
13             curr = max(curr, i + A[i]);
14         }
15         return ret;
16     }
17 };

转载于:https://www.cnblogs.com/lancelod/p/3972272.html

[LeetCode系列] 跳跃问题II相关推荐

  1. Leetcode 45. 跳跃游戏 II

    Leetcode 45. 跳跃游戏 II 题目 给你一个非负整数数组 nums ,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组 ...

  2. leetcode 45. 跳跃游戏 II 46. 全排列

    leetcode 45. 跳跃游戏 II 46. 全排列 45. 跳跃游戏 II 难度中等1273收藏分享切换为英文接收动态反馈 给你一个非负整数数组 nums ,你最初位于数组的第一个位置. 数组中 ...

  3. leetcode 45.跳跃游戏 II

    一.题意 给出一个非负整数数组 nums ,数组中的每个元素代表在该位置可以跳跃的最大长度.使用最少的跳跃次数到达数组的最后一个位置.假设总是可以到达数组的最后一个位置. 二.解法 贪心算法. 解法一 ...

  4. leetcode系列-90.子集 II

    leetcode系列–第90题.子集 II 做此题之前务必先做 第78题题目描述: 给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集). 解集 不能 包含重复的子 ...

  5. LeetCode 45.跳跃游戏II

    45.跳跃游戏 II 题目描述 给你一个非负整数数组 nums ,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. ...

  6. LeetCode 45. 跳跃游戏 II(贪心/BFS,难)

    文章目录 1. 题目 2. 解题 2.1 贪心 2.2 BFS 1. 题目 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的 ...

  7. leetcode 45跳跃游戏II

    跳跃游戏II 核心思想:当前范围内走不到目的地,更新下一个范围.下一个范围是当前范围内能走到的最远点 class Solution {public:int jump(vector<int> ...

  8. leetcode —— 45. 跳跃游戏 II

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

  9. Leetcode 45. 跳跃游戏 II (每日一题 20210922)

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

最新文章

  1. 防止Domino邮件服务器作为垃圾邮件转发服务器
  2. onTouchEvent
  3. android dbflow教程,Android高性能ORM数据库DBFlow入门教程
  4. Please remove usages of `jcenter()` Maven repository from your build scripts and migrate your build
  5. 新一代数据中心不可忽视DAC高速铜缆直连线应用
  6. html和ajax通信,使用Ajax与服务器(JSON)通信实例
  7. ios网络学习------1get post异步请求
  8. 寒心!一个开发者就这样离开了!
  9. vscode - 设置 Python 版本
  10. 基于springboot宠物医院管理系统java源码
  11. 服务器域名解析问题,域名解析出现错误的几种情况,以及解决方法
  12. 中文命名实体识别总结
  13. python读取xls文件_用python脚本 从xls文件中读取数据
  14. Assuming drive cache: write through ubuntu硬盘内存扩展
  15. 异常-银行账户异常处理
  16. 基于IPFS视频存储的在线视频网站
  17. 【笔记:Spring】
  18. (5)CC3200学习之串口
  19. 数据库基本知识(MySql版)
  20. Ubuntu完全卸载与安装Mysql

热门文章

  1. k8s springboot 文件_用Kubernetes部署Springboot或Nginx,也就一个文件的事
  2. mybatis plus 动态创建表和字段_mybatis-plus maven代码生成器
  3. python私有化方法_Python 私有化
  4. python ggplot为什么不能取代matplotlib_为什么geom_bar()不会像python ggplot中那样更改填充颜色?...
  5. table中加表单元素怎么验证_el-table嵌入表单元素注意事项(验证规则prop写法与数据初始化)...
  6. java生成点阵图_Android从SD卡读取图片并显示为点阵图
  7. java 打包工具_Java打包Windows安装程序
  8. HBuilder Android APP打包发布
  9. spring boot 教程(五)使用JdbcTemplate访问数据库
  10. mysqli.class.php,PHP MySQLi类