当前位置: 首页 > article >正文

力扣——跳跃游戏 II

题目链接:

链接

题目描述:

在这里插入图片描述

思路:

  1. 一个点走到他的最大距离end,中途会经过其他点,比较得到途经这些点可走的最远距离maxPosition,
  2. 当遍历完这些途径点到达end后,就更新新的end为maxPosition,同时步数加1

实现代码:

class Solution {
    public int jump(int[] nums) {
        int step = 0;
        int maxPosition = 0;
        int end = 0;
        //这里为什么用<nums.length - 1
        //如果访问nums.length-1,恰好此时end就是nums.length-1,就会多执行一次step++
        //在到达nums.length-2这个点后,一定能到达nums.length-1(题目说了可以)
        for(int i=0; i<nums.length -1; i++){
            maxPosition = Math.max(i+nums[i],maxPosition);
            if(i == end){
                end = maxPosition;
                step++;
            }
        }
        return step;
    }
}

http://www.kler.cn/a/558104.html

相关文章:

  • 前端开发常见问题与面试-02
  • Linux--进程(进程虚拟地址空间、页表、进程控制、实现简易shell)
  • ubuntu部署小笔记-采坑
  • C++ ——继承
  • Linux C 静态库如何生成并使用
  • Leetcode K个一组翻转链表
  • win10把c盘docker虚拟硬盘映射迁移到别的磁盘
  • MySQL(高级特性篇)11章——数据库的设计规范
  • 装箱和拆箱是什么?(C#)
  • 【hot100】240搜索二维矩阵
  • A097基于SpringBoot实现的社区博客管理系统
  • vue-treeselect显示unknown的问题及解决
  • 安卓好软-----车机端 安卓tv端很好用的应用管家 adb 授权等等功能
  • 嵌入式0xDEADBEEF
  • 酒店旅游API:数据交互的隐形桥梁——以携程API为例
  • Android-Skin-Loader 换肤框架不支持多个activity同时换肤问题处理
  • Ubuntu DeepSeek磁盘空间不够解决办法
  • linux有名管道
  • 鸿蒙开发技术指南:从入门到精通
  • LeetCode 热题 100_在排序数组中查找元素的第一个和最后一个位置(65_34_中等_C++)(二分查找)(一次二分查找+挨个搜索;两次二分查找)