2025年- H77-Lc185--45.跳跃游戏II(贪心)--Java版

1.题目描述

2.思路

每次尽可能往远一点跳,就能以最少的步数达到终点。

以最少的步数尽可能的增加覆盖范围,只要覆盖范围把最远的终点覆盖掉,就说明当前的步数可以跳到终点。

每次只记录下一步的最大范围。

3.代码实现

java 复制代码
public class H45 {
    public int jump(int[] nums) {

        if(nums.length==1)//如果只有1一个元素,说明不用跳(既是终点也是起点)
            return 0;
        int cur=0;//当前的覆盖范围的索引,从0开始
        int next=0;//下一步的覆盖范围
        int res=0;//记录当前的结果
        for(int i=0;i<nums.length;i++)
        {
            next=Math.max(i+nums[i],next);//两两比较,每次保存值最大的那个数,并赋值给next
            if(i==cur) {//当前一步的跳跃范围是否已经用完了
                //当前的位置不是数组的终点位置
                if (cur != nums.length - 1)
                {
                    res++;//还没到终点位置,结果(步数)+1
                    //把下一步的覆盖范围赋值给当前的复制范围
                    cur=next;
                    if(cur>nums.length-1)
                        break;
                }else {
                    break;
                }
            }
        }
        return res;


    }
    public static void main(String[] args)
    {
        H45 test=new H45();
        int[] nums={2,3,1,1,4};
        int ans=test.jump(nums);
        System.out.print(ans);
    }
}
相关推荐
满怀冰雪11 小时前
第05篇-滑动窗口算法-一套模板解决子串与子数组问题
java·算法
码云骑士11 小时前
【3.1Java基础】Java运算符常见错误排查:10个高频编译运行错误一网打尽
java·开发语言
小程故事多_8011 小时前
RAGFlow 分块策略全景与 Book 策略深度解析
java·开发语言·rag
阿里嘎多学长11 小时前
2026-06-09 GitHub 热点项目精选
开发语言·程序员·github·代码托管
枫叶丹411 小时前
【HarmonyOS 6.0】MDM Kit 新增限制策略深度解析:短信、蜂窝数据、飞行模式、通知消息与 NFC 管控
开发语言·华为·harmonyos
吴声子夜歌11 小时前
JVM——线程池实现原理
java·jvm·线程池
雾沉川11 小时前
IntelliJ IDEA 2025.2 安装与基础配置技术教程
java·ide·intellij-idea
AC赳赳老秦11 小时前
技术文章素材收集自动化:用 OpenClaw 自动爬取行业资讯、技术热点、优质文章
运维·开发语言·python·自动化·wpf·deepseek·openclaw
辰海Coding11 小时前
MiniSpring框架学习笔记-JDBC 访问框架:如何抽取 JDBC 模板并隔离数据库?
java·数据库·笔记·学习·spring
CodeStats11 小时前
从 CPU 指令执行到权限管控:对比三大操作系统,梳理编程语言演进,解读 HTML/CSS/JS 浏览器解析的共通底层逻辑
java·linux·windows