1
var subsetsWithDup = function (nums) {
2
let result = [];
3
//sort the nums to avoid duplicates;
4
nums.sort((a, b) => a - b);
5
result.push([]);
6

7
let startIdx = 0;
8
let endIdx = 0;
9

10
for (let i = 0; i < nums.length; i++) {
11
let current = nums[i];
12
startIdx = 0;
13

14
//check for duplicates and get the idx of last subset
15
if (i > 0 && nums[i] === nums[i - 1]) {
16
startIdx = endIdx + 1;
17
}
18
endIdx = result.length - 1;
19

20
for (let j = startIdx; j < endIdx + 1; j++) {
21
let set1 = result[j].slice(0);
22
set1.push(current);
23
result.push(set1);
24
}
25
}
26

27
return result;
28
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0