45. 跳跃游戏 II

给定一个长度为 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
  • 题目保证可以到达 nums[n-1]

解题思路:

定义三个变量,一个是用来遍历数组所有的元素,一个是用来记录遍历的过程中所获得的每次最大跳跃元素下标,一个用来记录跳跃了多少次。

class Solution {
      public int jump(int[] nums) {
        // left 记录当前覆盖的最远距离【下标】
        int left = 0;
        // right 记录下一次覆盖的最远距离【下标】
        int right = 0;
        // 记录跳跃了多少次
        int result = 0;
        for (int i = 0; i <= right && right < nums.length - 1; i++) {
            left = Math.max(left, nums[i] + i);
            // 循环等于右坐标时,跳跃次数+1
            if (i == right) {
                right = left;
                result++;
            }
        }
        return result;
    }
}

近日总结:累......心累......身体累...... 

相关推荐

  1. 45. 跳跃游戏 II

    2024-03-17 09:58:01       36 阅读
  2. 45. 跳跃游戏 II

    2024-03-17 09:58:01       28 阅读
  3. 45. 跳跃游戏 II

    2024-03-17 09:58:01       30 阅读
  4. 45. 跳跃游戏 II

    2024-03-17 09:58:01       18 阅读
  5. 跳跃游戏 + 45. 跳跃游戏 II

    2024-03-17 09:58:01       45 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-17 09:58:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-17 09:58:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-17 09:58:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-17 09:58:01       20 阅读

热门阅读

  1. CMake官方教程9--打包文件

    2024-03-17 09:58:01       19 阅读
  2. JWT令牌

    JWT令牌

    2024-03-17 09:58:01      21 阅读
  3. React懒加载

    2024-03-17 09:58:01       22 阅读
  4. awk命令——文本数据格式处理工具

    2024-03-17 09:58:01       24 阅读
  5. 门牌制作-蓝桥杯?-Lua 中文代码解题第3题

    2024-03-17 09:58:01       23 阅读
  6. 飞桨科学计算套件PaddleScience

    2024-03-17 09:58:01       19 阅读
  7. Redis列表:高效消息通信与实时数据处理的利器

    2024-03-17 09:58:01       21 阅读