Divide Array in Sets of K Consecutive Numbers LeetCode solution in JavaScript

1
var isPossibleDivide = function (nums, k) {
2
if (nums.length % k) {
3
return false;
4
}
5

6
nums.sort((a, b) => a - b);
7

8
let numberOfArrays = nums.length / k,
9
index = 0,
10
dp = Array(numberOfArrays)
11
.fill(null)
12
.map(() => []);
13

14
dp[0].push(nums[0]);
15

16
for (let i = 1; i < nums.length; i++) {
17
if (nums[i] === nums[i - 1]) {
18
if (index === numberOfArrays - 1) {
19
return false;
20
}
21
index++;
22
} else {
23
index = 0;
24
while (dp[index].length === k) {
25
index++;
26
}
27
}
28
if (dp[index].length && dp[index].at(-1) + 1 != nums[i]) {
29
return false;
30
}
31
dp[index].push(nums[i]);
32
}
33

34
return true;
35
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0