首页 > 其他分享 >力扣---45. 跳跃游戏 II

力扣---45. 跳跃游戏 II

时间:2022-12-16 15:55:31浏览次数:41  
标签:力扣 nums int 45 --- maxPosition steps 跳转

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。
每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:

    0 <= j <= nums[i]
    i + j < n
返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。

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

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

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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/jump-game-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

最近是按照动态规划的题刷的,但已经有好几道题和动态规划没关系,挺神奇的。

这道题和上个题https://www.cnblogs.com/allWu/p/16987184.html只不过是名字像一些,实际上用到的思想区别较大。

主要用到的是贪心算法。

从下标 i 开始算起,到 i + nums[i] 的这段区间内,如果有可以到达比nums[i] 更远的数,那么选择所有的具有这种特点的可以到达最远的即可。

第一次自己做的时候,我是把遍历nums[i] 和判断从 i 到 i + nums[i] 这段区间是否有更好的选择给分开做的,之后直接跳转。结果被一大堆溢出判断,结束判断搞得头大,看了眼官方解,果然,我是沙比。

代码如下:

 1 class Solution {
 2     public int jump(int[] nums) {
 3         int length = nums.length;
 4         int end = 0;
 5         int maxPosition = 0;
 6         int steps = 0;
 7         for (int i = 0; i < length - 1; i++) {
 8             maxPosition = Math.max(maxPosition, i + nums[i]);
 9             if (i == end) {
10                 end = maxPosition;
11                 steps++;
12             }
13         }
14         return steps;
15     }
16 }

运行结果如下;

运行结果

 

标签:力扣,nums,int,45,---,maxPosition,steps,跳转
From: https://www.cnblogs.com/allWu/p/16987575.html

相关文章

  • 【报告分享】中科院-地球大数据支撑可持续发展目标报告.pdf
        今天分享的报告来自中国科学院地球大数据科学工程于2019年9月推出的《地球大数据支撑可持续发展目标报告.pdf》,希望对您有用。   关注公众号“智能推荐系统”并......
  • 【王喆-推荐系统】前沿篇-(task1)YouTube推荐架构
    学习总结YouTube推荐架构=召回层(多,快)+排序层(少,精)。候选集生成模型:用了EmbeddingMLP,注意最后的多分类的输出层,预测的是用户点击了“哪个”视频。线上服务时,需要从输出层提取......
  • 【LeeCode】2488. 统计中位数为 K 的子数组 -- 太难了
    【题目描述】给你一个长度为n的数组nums,该数组由从1到n的不同整数组成。另给你一个正整数k。统计并返回num中的中位数等于k的非空子数组的数目。注意:数组......
  • Qt5.15-windows安装(解决Network error while downloading问题)
    ​​文章目录​​1项目场景:​​​​2问题描述:​​​​3原因分析:​​​​4解决方案:​​​​4.1下载fiddlereverywhere以及qt在线下载器​​​​4.2在fiddlereverywh......
  • [Typescript] 139. Extreme - Slice
    ImplementtheJavaScript Array.slice functioninthetypesystem. Slice<Arr,Start,End> takesthethreeargument.Theoutputshouldbeasubarrayof Arr......
  • 那年不“匆匆”---我的2014年总结
           在《文明之光》的引子中,吴军老师提到:“人类的历史相对我们这个星球的历史,大约相当于一年中的半个小时。”人类是年轻的,对于整个世界,我们只是认识了很小一部......
  • FDD-lte和TDD-lte的区别
    目前基于LTE的4G标准有两个,分别是LTEFDD和LTETDD(国内习惯于将LTETDD称为TD-LTE)。这两大标准都是基于LTE的不同分支,相似度超过90%。2为了更形象地解析二者差异,......
  • ctags: Unknown option: --kinds-c
    在本地搭建Bootlinelixir查阅内核代码的时候,每当执行到 python3update.py 这一步骤的时候,终端上总会报“ctags:Unknownoption:--kinds-c”这个warning,执行完成以......
  • Python SQL 驱动程序 - pymssql
    PythonSQL驱动程序-pymssql前言pymssql官方地址:https://pypi.org/project/pymssql/一、下载pymssql不通的操作系统,不同的Python版本下载对应的pymssql注意:博主运......
  • python-面向对象三大特性
    python-面向对象三大特性封装继承多态封装'''封装 封装就是把类的属性和方法封装到类的内部,只能在内部使用,不能在类外部使用 把属性和方法前面加两个下划线,这......