Skip to content

Commit e43b9fb

Browse files
authored
Create 1040-moving-stones-until-consecutive-ii.js
1 parent 4ae63a3 commit e43b9fb

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/**
2+
* @param {number[]} stones
3+
* @return {number[]}
4+
*/
5+
const numMovesStonesII = function(stones) {
6+
stones.sort((a, b) => a - b)
7+
let n = stones.length;
8+
let least = Number.MAX_VALUE, most = Number.MIN_VALUE;
9+
10+
for (let i = 0, j = 0; i < n; i++) {
11+
while (j + 1 < n && stones[j + 1] - stones[i] < n) j++;
12+
let now = n - (j - i + 1);
13+
if (j - i == n - 2 && stones[j] - stones[i] == j - i) now++;
14+
least = Math.min(least, now);
15+
}
16+
17+
most = Math.max(stones[n - 1] - stones[1], stones[n - 2] - stones[0]) - (n - 2);
18+
return [least, most];
19+
};

0 commit comments

Comments
 (0)