Leetcode 55 Jump Game II
https://leetcode.com/problems/jump-game-ii/
貪心
1,總是找到每個所在元素的最大可及idx 2,關鍵點在於,在上述基礎之上,如何抽象出和題目結果相關的結果。
在這個例子中,其實就是求,從第一個元素開始,有多少個最大“跨越”,計算每個元素對應的最大跨越,當便利到該最大跨越點時, 即為step應該增加的時候。
注意:遍歷的最終點為:nums.length - 1,因為初始的currentMax
預設為0,所以當能夠遍歷的時候,第一次已經加了一步了。
var jump = function(nums) { let currentMax = 0; let maxNext = 0; let steps = 0; for (var i = 0; i < nums.length - 1; i++) { maxNext = Math.max(maxNext, nums[i] + i); if (i === currentMax) { steps++; currentMax = maxNext; } } return steps; };