首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

跳跃游戏 II

换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处: 0 <= j <= nums[i] i + j < n 返回到达 nums[n - 1] 的最小跳跃次数。...示例 1: 输入: nums = [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是2。从下标为 0 跳到下标为 1 的位置,跳1步,然后跳3步到达数组的最后一个位置。...nums.length <= 104 0 <= nums[i] <= 1000 题目保证可以到达 nums[n-1] 如果我们「贪心」地进行正向查找,每次找到可到达的最远位置,就可以在线性时间内得到最少的跳跃次数...我们从左到右遍历数组,到达边界时,更新边界并将跳跃次数增加 1。...如果访问最后一个元素,在边界正好为最后一个位置的情况下,我们会增加一次「不必要的跳跃次数」,因此我们不必访问最后一个元素。

10210

LeetCode-55-跳跃游戏

# LeetCode-55-跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。...但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。...# 解题思路 方法1、贪心: 对于数组中任意的一个位置y,如何判断是否可达 根据题意,只要存在一个位置x,它本身可达,并且它跳跃的最大长度为x+nums[x],这个值>=y,即x+nums[x]>=y,...这些连续的位置都可以到达 于是我们可以动态记录最远可以到达的位置,对于每一个起跳点,更新对应的最远可以到达的位置 即把每个能起跳的点都试一次,使用max表示最远能够到达的点,超过max就不能跳了,直接进行返回 # Java

9210
领券