2025-3-11 leetcode刷题情况(贪心算法--区间问题)

一、55.跳跃游戏

1.题目描述

2.代码

3.思路

跳跃覆盖范围究竟可不可以覆盖到终点

如果数组长度为 1,说明已经在终点,直接返回 true。定义一个变量 coverRange 并初始化为 0,表示当前能够到达的最远位置。从数组的第一个位置开始遍历,只要当前位置 i 在覆盖范围 coverRange 内,就继续遍历。在遍历过程中,不断更新覆盖范围,取当前覆盖范围 coverRangei + nums[i] 中的较大值作为新的覆盖范围。这是因为从位置 i 出发,最远可以到达 i + nums[i] 的位置。在每次更新覆盖范围后,检查覆盖范围是否已经能够到达数组的最后一个位置(即 coverRange >= nums.length - 1),如果可以,则返回 true。如果遍历结束后都没有到达终点,说明无法到达,返回 false

二、45.跳跃游戏Ⅱ

1.题目描述

2.代码

3.思路

初始化 result 为 0,用于记录跳跃次数;end 为 0,代表当前覆盖的最远距离下标;temp 为 0,代表下一步覆盖的最远距离下标。

i 不超过 endend 未到达数组末尾时进行遍历。在遍历过程中,不断更新 temp,取 tempi + nums[i] 中的最大值,因为 i + nums[i] 表示从位置 i 出发能到达的最远位置。

i 等于 end 时,意味着当前跳跃范围已遍历完,此时将 end 更新为 temp,表示到达了下一个能覆盖的最远位置,同时 result 加 1,记录一次跳跃。

遍历结束后,result 即为从起点到终点所需的最少跳跃次数。

相关推荐
YoungHong19925 分钟前
面试经典150题[074]:填充每个节点的下一个右侧节点指针 II(LeetCode 117)
leetcode·面试·职场和发展
DanyHope12 分钟前
LeetCode 128. 最长连续序列:O (n) 时间的哈希集合 + 剪枝解法全解析
前端·leetcode·哈希算法·剪枝
元亓亓亓15 分钟前
LeetCode热题100--763. 划分字母区间--中等
算法·leetcode·职场和发展
Dream it possible!16 分钟前
LeetCode 面试经典 150_回溯_全排列(100_46_C++_中等)
c++·leetcode·面试·回溯
鹿角片ljp16 分钟前
力扣206.反转链表-双指针法(推荐)
算法·leetcode·链表
智航GIS23 分钟前
ArcGIS大师之路500技---037普通克里金VS泛克里金
人工智能·算法·arcgis
晨晖230 分钟前
循环队列:出队
算法
LYFlied32 分钟前
【每日算法】LeetCode 70. 爬楼梯:从递归到动态规划的思维演进
算法·leetcode·面试·职场和发展·动态规划
一起养小猫33 分钟前
LeetCode100天Day2-验证回文串与接雨水
java·leetcode
YoungHong199236 分钟前
面试经典150题[073]:从中序与后序遍历序列构造二叉树(LeetCode 106)
leetcode·面试·职场和发展