Skip to content

Commit 2f727d4

Browse files
committed
solution: 0045. Jump Game II
1 parent 44eab0b commit 2f727d4

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

src/0045/index.test.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,16 @@ describe('0045. Jump Game II', () => {
1919
},
2020
output: 2,
2121
},
22+
{
23+
input: {
24+
nums: [1, 1, 1, 1, 1],
25+
},
26+
output: 4,
27+
},
2228
];
2329

2430
test.each(testCases)('Case %#', ({ input: { nums }, output }) => {
25-
const relsult = jump(nums);
31+
const result = jump(nums);
2632
expect(result).toStrictEqual(output);
2733
});
2834
});

src/0045/index.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1-
function jump(nums: number[]): number {}
1+
function jump(nums: number[]): number {
2+
let result = 0;
3+
let availableSteps = 0;
4+
let currentIndex = 0;
5+
for (let i = 0; i < nums.length - 1; i++) {
6+
if (nums.length - 1 <= i + nums[i]) {
7+
return result + 1;
8+
}
9+
availableSteps = Math.max(availableSteps, nums[i] + i);
10+
if (i === currentIndex) {
11+
result += 1;
12+
currentIndex = availableSteps;
13+
}
14+
}
15+
return result;
16+
}
217

318
export { jump };

0 commit comments

Comments
 (0)