Distant Barcodes LeetCode solution in JavaScript
1var rearrangeBarcodes = function (barcodes) {2var result = [];3var map = new Map();4barcodes.forEach((n) => map.set(n, map.get(n) + 1 || 1));5let list = [...map.entries()].sort((a, b) => {6return b[1] - a[1];7});8let i = 0; //list[i][0]=>number list[i][1]=>count of this number9while (result.length !== barcodes.length) {10if (list[i][1] > 0) result.push(list[i][0]), list[i][1]--;11i++;12if (list[i] === undefined) i = 0;13if (14list[0][1] - list[i][1] >= 1 &&15result[result.length - 1] !== list[0][0]16)17i = 0;18} //list has sorted, so list[0] appeared most frequent19return result;20};