add: 跳跃游戏 II
This commit is contained in:
parent
c5f7255d3a
commit
b806ec7959
@ -235,6 +235,11 @@ LeetCode 与 LintCode 解题记录。此为个人练习仓库,代码中对重
|
|||||||
- LeetCode 面试题42. 连续子数组的最大和 https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof/
|
- LeetCode 面试题42. 连续子数组的最大和 https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof/
|
||||||
- LintCode 41. 最大子数组 https://www.lintcode.com/problem/maximum-subarray/description
|
- LintCode 41. 最大子数组 https://www.lintcode.com/problem/maximum-subarray/description
|
||||||
|
|
||||||
|
- [跳跃游戏II](src/array/jump-game-ii.js)
|
||||||
|
|
||||||
|
- LeetCode 45. 跳跃游戏 II https://leetcode-cn.com/problems/jump-game-ii/
|
||||||
|
- LintCode 117. 跳跃游戏 II https://www.lintcode.com/problem/jump-game-ii/description
|
||||||
|
|
||||||
## 栈
|
## 栈
|
||||||
|
|
||||||
- [最大矩阵](src/stack/maximal-rectangle.js)
|
- [最大矩阵](src/stack/maximal-rectangle.js)
|
||||||
|
20
src/array/jump-game-ii.js
Normal file
20
src/array/jump-game-ii.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/**
|
||||||
|
* @param {number[]} nums
|
||||||
|
* @return {number}
|
||||||
|
*/
|
||||||
|
export const jump = function (nums) {
|
||||||
|
let step = 0 // 跳跃步数
|
||||||
|
let maxPosition = 0 // 最大位置
|
||||||
|
let lastJumpStepMax = 0 // 最后一次跳跃最大能跳的步数
|
||||||
|
|
||||||
|
for (let n = 0, len = nums.length; n < len - 1; n++) {
|
||||||
|
maxPosition = Math.max(maxPosition, nums[n] + n)
|
||||||
|
if (lastJumpStepMax === n) { // 从当前位置开始,到当前能跳的位置这个区间,谁最大,就选谁,并跳一次
|
||||||
|
lastJumpStepMax = maxPosition
|
||||||
|
step++
|
||||||
|
}
|
||||||
|
if (lastJumpStepMax > len) return step
|
||||||
|
}
|
||||||
|
|
||||||
|
return step
|
||||||
|
}
|
5
test/array/jump-game-ii.test.js
Normal file
5
test/array/jump-game-ii.test.js
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
import { jump } from '../../src/array/jump-game-ii'
|
||||||
|
|
||||||
|
test('跳跃游戏II', () => {
|
||||||
|
expect(jump([2, 3, 1, 1, 4])).toBe(2)
|
||||||
|
})
|
Loading…
Reference in New Issue
Block a user