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

力扣 跳跃游戏 II

贪心算法,存下每一步的最远,去达到全局的最小跳跃次数。

题目

从题中要达到最少次数,肯定是每一步尽可能走远一点。但注意j被限制了范围,这种不用想每一步遍历时肯定选最大的num[i],但要注意,题中是可以到达不是刚好到达,因此最后一步只要大于最后一个数都是可以的。从第一个数开始遍历,每一步贪心去选最远的距离,然后每个数都存下一个可达到的最远距离便于更新,因为贪心每一次都是基于当前数的最优,并不是全局最优。

时间复杂度: O(n),空间复杂度: O(1)。

class Solution {
    public int jump(int[] nums) {
        int step=0,end=0,furthest=0;
        for(int i=0; i<nums.length-1;i++){  
            furthest = Math.max(furthest, i+nums[i]);  //dp每个i,记录每个位置能达到的最远距离
            if(i==end){  //i遍历到上个起跳点能到的最远距离
                end = furthest;  //更新到下一步要跳到的位置,注意这里跳的最远距离由i前面的数贪心选出来的
                step++;  //来到这里就加了一步
            }
        }
        return step;
        
    }
}

动态规划是存一个要维护状态的dp数组,每次的状态由上几个状态更新得到,这题用dp会很慢。而贪心策略在于,每一步都存下最优状态便于后续的更新。

 

相关文章:

  • Pytorch实现之粒子群优化算法在GAN中的应用
  • 【工具类】 Hutool 中用于生成随机数的工具类
  • Python基于自然语言处理技术的新闻文本分类系统【附源码、文档说明】
  • R语言用逻辑回归贝叶斯层次对本垒打数据与心脏移植数据后验预测检验模拟推断及先验影响分析|附数据代码...
  • 轻松搭建本地大语言模型(二)Open-WebUI安装与使用
  • C++基础知识学习记录—友元
  • 麒麟系统下载软件及依赖包文件方法
  • MSI微星电脑冲锋坦克Pro Vector GP76 12UGS(MS-17K4)原厂Win11系统恢复镜像,含还原功能,预装OEM系统下载
  • Maven如何配置阿里云仓库/国内镜像
  • AutoGen:玩转多智能体团队协作 (Teams)
  • 数据中心精密列头柜 多回路数据采集器 功能参数介绍
  • 【嵌入式Linux应用开发基础】exec()函数族
  • 人工智能(AI)在癌症休眠研究及精准肿瘤学中的应用|顶刊速递·25-02-18
  • 【ELK】【Elasticsearch 】DSL 和 DQL
  • 【算法】双指针(上)
  • sql注入之python脚本进行时间盲注和布尔盲注
  • MySQL 日志
  • bash脚本----传参的处理
  • 五十天精通硬件设计第34天-CMOS 和 JFET 放大器中电流噪声的影响
  • 聊一聊Netty中的执行器选择策略
  • “五一”假期文旅热度创近3年新高,入境游订单飙升130%
  • 马克思主义理论研究教学名师系列访谈|王公龙:做好马克思主义研究,既要“钻进去”又要“跳出来”
  • 五一上海楼市热闹开局:售楼处全员到岗,热门楼盘连续触发积分
  • 俄罗斯期望乌克兰在停火期间采取行动缓和局势
  • 云南省政协原党组成员、秘书长车志敏接受审查调查
  • 西湖大学2025年上海市综合评价招生简章发布