[leetcode] 45. Jump Game II(hard)

it2025-11-19  12

原题题意: 是Jump Game的衍生题(题解),题意求跳到最后一格所需最少步数,(默认所测数据永远可以跳到最后一格)。思路: 利用贪心,遍历数组,记录在每一步可跳跃到的最大区域。 1.当前步数 超过已覆盖范围,则表示需要进行跳跃,同时更新已覆盖区域,可覆盖区域。 2.当前步数 在已覆盖范围内,说明无需进行跳跃,同时更新可覆盖区域。

/** * @param {number[]} nums * @return {number} */ var jump = function (nums) { var hasCover = 0; // 当前已覆盖的区域 var maxCover = 0; // 最右边可覆盖的区域 var res = 0; for (let i = 0; i < nums.length; i++) { if (i > hasCover) //超过已覆盖区域 需要跳步 { hasCover = maxCover; res++; if (hasCover>=nums.length) { break; } } maxCover = Math.max(maxCover, nums[i] + i); } return res; };

转载于:https://www.cnblogs.com/ruoh3kou/p/9893428.html

最新回复(0)