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

温州专业微网站制作网络公司网站ip访问做图表

温州专业微网站制作网络公司,网站ip访问做图表,做免费推广网站,潍坊淘宝网站建设代码训练(21)LeetCode之跳跃游戏2 Author: Once Day Date: 2025年6月4日 漫漫长路,才刚刚开始… 全系列文章可参考专栏: 十年代码训练_Once-Day的博客-CSDN博客 参考文章: 45. 跳跃游戏 II - 力扣(LeetCode)力扣 (LeetCode) 全球极客挚爱…

代码训练(21)LeetCode之跳跃游戏2

Author: Once Day Date: 2025年6月4日

漫漫长路,才刚刚开始…

全系列文章可参考专栏: 十年代码训练_Once-Day的博客-CSDN博客

参考文章:

  • 45. 跳跃游戏 II - 力扣(LeetCode)
  • 力扣 (LeetCode) 全球极客挚爱的技术成长平台

文章目录

      • 代码训练(21)LeetCode之跳跃游戏2
        • 1. 原题
        • 2. 分析
        • 3. 代码实现
        • 4. 总结

1. 原题

给定一个长度为 n0 索引整数数组 nums。初始位置为 nums[0]

每个元素 nums[i] 表示从索引 i 向后跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:

  • 0 <= j <= nums[i]
  • i + j < n

返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]

提示:

  • 1 <= nums.length <= 104
  • 0 <= nums[i] <= 1000
  • 题目保证可以到达 nums[n-1]

示例 1:

输入: nums = [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。

示例 2:

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

这个问题是一个非常典型的贪心算法问题。我们需要找到从数组的起点到终点的最小跳跃次数。

贪心算法的选择

  • 我们需要在每一步选择能跳得最远的位置,这样可以保证使用最少的跳跃次数。
  • 使用两个变量 endfarthest 分别记录每一次跳跃的结束位置和在这次跳跃中能达到的最远位置。

如何处理

  • 遍历数组,对于每个位置,更新这次跳跃能达到的最远位置 farthest
  • 如果遍历到了 end 所指示的位置,表明完成了一次跳跃,更新 endfarthest,跳跃次数加一。

分析步骤:

  • 初始化 endfarthest 为0,跳跃次数 jumps 为0。

  • 遍历数组中的每个元素,更新能跳到的最远位置 farthest = max(farthest, i + nums[i])

    当索引 i 等于 end,即达到跳跃的边界时:

    如果 i 不是最后一个元素,则更新 endfarthest,跳跃次数 jumps 加一。

    如果已经是最后一个元素,结束循环。

  • 返回跳跃次数 jumps

性能优化关键点

  • 时间复杂度:O(n),因为我们只需要遍历数组一次。
  • 空间复杂度:O(1),使用了常数个额外空间。
3. 代码实现
#include <stdio.h>int jump(int* nums, int numsSize) {int end = 0, farthest = 0;int jumps = 0;for (int i = 0; i < numsSize - 1; i++) {farthest = (i + nums[i] > farthest) ? i + nums[i] : farthest;if (i == end) {end = farthest;jumps++;}}return jumps;
}int main() {int nums[] = {2, 3, 1, 1, 4};int numsSize = sizeof(nums) / sizeof(nums[0]);int result = jump(nums, numsSize);printf("Minimum jumps required: %d\n", result);return 0;
}

这段代码实现了"跳跃游戏2"(Jump Game)问题的解决方案,使用贪心策略。

4. 总结

这个问题考察了对贪心算法的理解和应用。通过局部最优解的迭代,达到全局最优解,是贪心算法的核心思想。了解和熟练掌握贪心算法可以帮助解决很多看似复杂的问题,提升算法设计和问题解决能力。

http://www.dtcms.com/a/437749.html

相关文章:

  • 做网站和做商城的区别在哪里网页图片怎么保存
  • wordpress怎么翻译英文插件广州seo工资
  • 品牌网站建设维护手机排行榜2023
  • 苏州网页服务开发与网站建设wordpress搜索模板
  • 美容设计网站建设阳江市建设局网站
  • wordpress首页添加站点统计显示收录批量查询工具
  • 做盗版电影网站违法吗网站建设的好处论文
  • 凤山县网站建设二建注册进度查询系统
  • 乐陵人力资源网站wordpress 前端展示
  • 大规模网站开发语言保险咨询网站建设
  • 织梦网站自动跳转手机网站网站开发环境windows7的优点
  • wordpress建站前端企业 cms
  • 做网站的是外包公司吗网站建设趣味解读
  • oa网站建设价格成都app制作开发团队
  • 用书籍上的文章做网站SEO软件开发流程模板
  • 用ip的网站要备案吗山东东营市东营区
  • 一元购网站建设方案书公司网页设计的公司
  • 企业网站备案网站备案 假通信地址
  • 计算机网络网站建设的实训总结厦门外贸商城网站建设
  • 想学做网站免费建设互动的网站
  • 网站 做百度推广有没有效果怎么样网站百度收录怎么做
  • 湖南省建设资源人才网站google play三件套
  • 虚拟主机如何搭建网站asp.net 手机网站模板
  • 手机网站返回跳转页面代码一个人免费观看视频播放
  • 国内空间站网站如何在国外推广
  • 南京做网站的客户电话育贤网站建设
  • ajax网站开发技术做门名片设计网站
  • 网站的三要素惠州做棋牌网站建设找哪家效益快
  • 计算机专业有哪些谷歌网站关键词优化
  • 怎么样做一家卖东西的网站明企科技网站建设系统