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

东莞做网站-南城信科网页设计步骤模板素材

东莞做网站-南城信科,网页设计步骤模板素材,广州网站设计公司兴田德润在那里,个人制作一个网站的费用🚀 力扣 45:跳跃游戏 II(全解法详解) 📌 题目描述 给你一个非负整数数组 nums,表示你最初位于数组的第一个位置。 数组中的每个元素表示你在该位置可以跳跃的最大长度。 你的目标是使用 最少的跳跃次数 到…

🚀 力扣 45:跳跃游戏 II(全解法详解)

📌 题目描述

给你一个非负整数数组 nums,表示你最初位于数组的第一个位置。

数组中的每个元素表示你在该位置可以跳跃的最大长度。

你的目标是使用 最少的跳跃次数 到达数组的最后一个位置。

假设你总是可以到达数组的最后一个位置。

🎯 示例 1:

输入: nums = [2,3,1,1,4]
输出: 2
解释: 跳到位置 1(跳 1 步),然后跳 4(再跳 1 步)——共 2 步

🎯 示例 2:

输入: nums = [2,3,0,1,4]
输出: 2

💡 解题思路总览

我们要找到 从起点跳到终点的最少步数。这题与「跳跃游戏 I」不同的地方是,这次我们不是判断“能否到达”,而是要求最小的“跳跃次数”。


✅ 解法一:贪心算法(最推荐🔥)

✨ 核心思路:

使用贪心思想,在每一步跳跃时,选择能跳的最远的那个位置。

🧠 实现步骤:

  1. 初始化步数 steps = 0,当前跳跃的边界 end = 0,和当前最远位置 farthest = 0
  2. 遍历数组:
    • 每次更新当前最远能跳到的位置
    • 当到达当前边界时,步数加一,并更新边界为 farthest

💻 代码实现(Go):

func jump(nums []int) int {steps := 0end := 0farthest := 0for i := 0; i < len(nums)-1; i++ {farthest = max(farthest, i+nums[i])if i == end {steps++end = farthest}}return steps
}func max(a, b int) int {if a > b {return a}return b
}

⏱️ 时间复杂度:O(n)

🧠 空间复杂度:O(1)


🔄 解法二:动态规划(自底向上)

✨ 核心思路:

定义 dp[i] 表示从位置 i 跳到终点所需的最小步数。

🧠 实现步骤:

  1. 初始化 dp[n-1] = 0(终点到终点步数为0)
  2. 从右向左遍历数组
  3. 对于每个 i,从 i+1i+nums[i]dp[j] 中最小值

💻 代码实现(Go):

func jump(nums []int) int {n := len(nums)dp := make([]int, n)for i := n - 2; i >= 0; i-- {minStep := int(1e9)for j := i + 1; j <= i+nums[i] && j < n; j++ {if dp[j] < minStep {minStep = dp[j]}}dp[i] = minStep + 1}return dp[0]
}

⏱️ 时间复杂度:O(n²)

🧠 空间复杂度:O(n)

💬 优点:清晰易懂,适合入门
缺点:效率较低,不适合数据量大的情况


🔁 解法三:反向贪心(从终点往回跳)

✨ 核心思路:

从终点出发,每次选择最靠前、但能够跳到当前终点的位置,更新目标点,直到回到起点。

🧠 实现步骤:

  1. 初始位置设为 pos = n-1
  2. 遍历数组从头找哪个位置能跳到 pos
  3. 每次成功找到,就将 pos 更新为当前索引,同时步数加一

💻 代码实现(Go):

func jump(nums []int) int {pos := len(nums) - 1steps := 0for pos > 0 {for i := 0; i < pos; i++ {if i+nums[i] >= pos {pos = isteps++break}}}return steps
}

⏱️ 时间复杂度:O(n²)

🧠 空间复杂度:O(1)

💬 优点:逻辑反向,易于验证正确性
缺点:效率低,不适合大数据量


📊 三种方法对比总结

解法时间复杂度空间复杂度适合场景特点说明
✅ 贪心O(n)O(1)面试首选高效实用,核心技巧
动态规划O(n²)O(n)教学/入门思路清晰,但慢
反向贪心O(n²)O(1)验证/反向思考逆向推理,有趣但低效

📌 最佳实践建议

  • 面试中建议优先写贪心算法,能体现算法思维和代码能力;
  • 若初学 DP,可尝试动态规划方式,加深状态转移理解;
  • 想换个角度思考,可尝试反向贪心,拓展思维维度。

📚 拓展阅读

  • Leetcode 55. 跳跃游戏 I
  • Leetcode 134. 加油站(贪心)
  • Leetcode 122. 买卖股票的最佳时机 II(贪心)

💡 如果你觉得这篇文章对你有帮助,欢迎点赞 👍、收藏 ⭐、关注 📌,我将持续更新更多 LeetCode 热题的高质量解析~



文章转载自:

http://x1xamMvq.gjwkL.cn
http://c5eO3T5t.gjwkL.cn
http://jgnwrLch.gjwkL.cn
http://GlRpxNGd.gjwkL.cn
http://ajGpdw3Q.gjwkL.cn
http://KLK8wDxW.gjwkL.cn
http://mcZDWduU.gjwkL.cn
http://8AIkTJAX.gjwkL.cn
http://KGhloCHr.gjwkL.cn
http://u9oqAK9d.gjwkL.cn
http://b2qqYxM6.gjwkL.cn
http://Lvk6l3TA.gjwkL.cn
http://byT7Q2F6.gjwkL.cn
http://fbad0c0i.gjwkL.cn
http://7JAE6jjS.gjwkL.cn
http://e8HSEAK9.gjwkL.cn
http://fYn1gfO5.gjwkL.cn
http://pAznc3T6.gjwkL.cn
http://T6YrFID8.gjwkL.cn
http://Sh4S6pum.gjwkL.cn
http://H23Whuuh.gjwkL.cn
http://VD3nEs8n.gjwkL.cn
http://bhyVESei.gjwkL.cn
http://62IVJGyZ.gjwkL.cn
http://QMz5hY6C.gjwkL.cn
http://m4cWaNhU.gjwkL.cn
http://E7zinOKi.gjwkL.cn
http://YbJN267C.gjwkL.cn
http://3anYCSFY.gjwkL.cn
http://WZZqjOiH.gjwkL.cn
http://www.dtcms.com/wzjs/762381.html

相关文章:

  • 网站自助搭建平台红色礼品网站模板
  • 企业自建站案例哔哩哔哩网站怎么做视频
  • 镇江网站建设门户报价wordpress筛选插件
  • 怎么办个人网站网站建设费用计算依据
  • 怎么安装wordpress东莞seo关键词
  • 网站建设策划包括哪些内容昆明学院网站建设与维护试题
  • 墙绘做网站哪家好百度广告联盟一个月能赚多少
  • 资源网站很难做宝尊代运营一年要多少钱
  • 外贸怎样做网站php玩具公司网站源码
  • 邢台提供网站设计公司哪家专业wordpress 免费主题下载
  • 佛山 顺德营销型网站设计天猫的网站建设
  • 微企免费网站建设做家教有什么好的资料网站
  • 简单手机网站模板怎么做阿里巴巴国际网站首页
  • 做城市网站的标语应用公园免费版下载
  • 网站建设招标评分标准郑州中原网站建设
  • 小说网站自主建设联通公网ip申请 做网站
  • 怎么样让网站正常解析免费的app软件下载安装
  • 增城免费网站建设试用虚拟主机不能创建网站
  • 男女怎样做那个视频网站上海工商一网通办
  • 做网站加盟目前流行的网页设计风格
  • 织梦商业网站内容管理系统互站网怎么样
  • 网站开发it项目规划书公司网站排名优化手段
  • 济宁优化公司常州网络推广seo
  • 什么是seo站内优化怎么样做网站卖农产品
  • 怎么编辑网站内容wordpress 暗盒
  • 比格设计网站官网wordpress模板 手机
  • 网站建设周期计划网上购物系统功能模块
  • 做市级网站需要什么意思wordpress for sae
  • 怎么查网站点击量做网站聊城
  • 织梦网站怎么做404页面模板网站二级目录怎么做301