题目地址: 链接
思路: 利用两个循环完成跳跃游戏,第一个循环记录当前可到达最远距离d,第二循环走一遍可到记录的最远距离maxJump
走完之后,最外层的循环次数即为答案
ts
function jump(nums: number[]): number {
const n = nums.length
let maxJump = 0
let d = 0
let ans = 0
for(let i = 0; i < n - 1; i = d) {
maxJump = Math.max(maxJump, i + nums[i]);
d = maxJump
for(let j = i; j <= d && j < n; j ++) {
maxJump = Math.max(maxJump, j + nums[j])
}
ans ++
}
return ans
};