-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
21 lines (18 loc) · 846 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* eslint-disable func-names */
/* eslint-disable no-extend-native */
Set.prototype.difference = function (set) {
return new Set([...this].filter((x) => !set.has(x)));
};
// La función de set.difference() esta disponible desde la version 22 de nodejs
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/difference#browser_compatibility
// Para poder utilizarla en versiones anteriores de nodejs, se debe de agregar la función al prototipo de Set
function findMissingNumbers(nums) {
const maxNumber = Math.max(...nums);
const fullSetOfNumbers = new Set(
Array.from({ length: maxNumber }, (_, index) => index + 1),
);
const uniqueNumbers = new Set(nums);
const missingNumbers = fullSetOfNumbers.difference(uniqueNumbers);
return [...missingNumbers];
}
module.exports = findMissingNumbers;