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

力扣-45.跳跃游戏II

题目链接

45.跳跃游戏II

解法一:贪心算法

class Solution {public int jump(int[] nums) {int step = 0;int end = 0;int maxLength = 0;for (int i = 0; i < nums.length - 1; i++) {if (i + nums[i] > maxLength) {maxLength = i + nums[i];}if (i == end) {step++;end = maxLength;}}return step;}
}

小结:时间复杂度O(n),空间复杂度O(1),是本题的最优解。

  • 为什么可以用贪心算法?
    这道题并不是每个点都选当前最远来跳跃,而是每个区域选最远跳跃,局部最优可以推导出全局最优。
  • 怎么用贪心算法?
    只有遍历到上次的最大下标位置才进行跳跃,并且对最大下标位置进行更新。

解法二:动态规划

class Solution {public int jump(int[] nums) {int dp[] = new int[nums.length];Arrays.fill(dp, 10001);dp[0] = 0;for (int i = 0; i < nums.length; i++) {for (int j = i + 1; j < nums.length && j <= i + nums[i]; j++) {dp[j] = Math.min(dp[j], dp[i] + 1);}}return dp[nums.length - 1];}
}

小结:最先想到的解法是动态规划,时间复杂度O(n²),空间复杂度O(n)。

  • dp数组含义?到达当前位置的最小跳跃次数。
http://www.dtcms.com/a/290445.html

相关文章:

  • 解决mac chrome无法打开本地网络中的内网网址的问题
  • 【HTML】图片比例和外部div比例不一致,最大程度占满
  • CSS实现背景色下移10px
  • 网络协议(四)网络层 路由协议
  • Vue组件之间通信
  • 使用相机不同曝光时间测试灯光闪烁频率及Ai解释
  • 【Java + Vue 实现图片上传后 导出图片及Excel 并压缩为zip压缩包】
  • 过往记录系列 篇七:大A突破3500点历史梳理
  • STM32 USB键盘实现指南
  • 格式工厂5.21.0简介
  • Idea上拉取代码解决冲突的总结
  • Scott Brinker:Martech代理时代兴起,结构性的洗牌刚刚开始;SaaS定价模式迅速被按效果付费所取代
  • 时序数据库在工业物联网领域的核心优势与应用价值
  • mongodb源代码分析createCollection命令由create.idl变成create_gen.cpp过程
  • MongoDB 查询时区问题
  • MySQL主从同步集群(Docker搭建)
  • 安装docker可视化工具 Portainer中文版(ubuntu上演示,所有docker通用) 支持控制各种容器,容器操作简单化 降低容器门槛
  • 详解 F.cross_entropy 与标签平滑的工作原理
  • MySQL(05) mysql锁,MVCC、Innodb行锁
  • 【初识Qt】
  • node.js 为什么要装 express组件
  • 如何使用电脑连接小米耳机(红米 redmi耳机)
  • HTTP,HTTPS
  • uniapp【uni-ui】【vue3】样式覆盖方式记录
  • uniapp vue3 vite项目使用微信云开发(云函数)
  • 全新开发范式:uni-app X助力全平台原生应用
  • uni-app 鸿蒙平台条件编译指南
  • 基于FPGA的IIC控制AHT20读取温湿度
  • 查看两个tv and 手机模拟器的ip
  • 探索无广告音乐世界:MusicFree 免费播放器