Created
September 1, 2020 12:12
-
-
Save thecotne/230b1ff61ac984e2dbdb6c85e5bd599f to your computer and use it in GitHub Desktop.
JS Bin // source https://jsbin.com/jizacev
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width"> | |
| <title>JS Bin</title> | |
| </head> | |
| <body> | |
| <script id="jsbin-javascript"> | |
| "use strict"; | |
| var a = [5, 9, 4, 3, 8, 2]; | |
| var b = [9, 8, 1, 10, 1, 4]; | |
| console.log(solve(a, b)); | |
| function solve(workers, jobs) { | |
| jobs.sort(function (a, b) { return a - b; }); | |
| for (var i = 0; i < workers.length;) { | |
| var index = findIndex(jobs, workers[i]); | |
| if (jobs[index] === workers[i]) { | |
| jobs.splice(index, 1); | |
| workers.splice(i, 1); | |
| } | |
| else { | |
| i++; | |
| } | |
| } | |
| var sum = 0; | |
| for (var i = 0; i < workers.length; i++) { | |
| var index = findIndex(jobs, workers[i]); | |
| sum += Math.abs(jobs[index] - workers[i]); | |
| jobs.splice(index, 1); | |
| } | |
| return sum; | |
| } | |
| function findIndex(array, value) { | |
| var high = array.length - 1; | |
| var low = 0; | |
| if (value < array[low]) { | |
| return 0; | |
| } | |
| if (value > array[high]) { | |
| return high; | |
| } | |
| var mid; | |
| while (high >= low) { | |
| mid = (high + low) >> 1; | |
| if (value === array[mid]) { | |
| return mid; | |
| } | |
| else if (value < array[mid]) { | |
| high = mid - 1; | |
| } | |
| else { | |
| low = mid + 1; | |
| } | |
| } | |
| return mid; | |
| } | |
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNiaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJqc2Jpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsSUFBTSxDQUFDLEdBQUcsQ0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBRSxDQUFBO0FBQzlCLElBQU0sQ0FBQyxHQUFHLENBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUUsQ0FBQTtBQUUvQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUV4QixlQUFnQixPQUFPLEVBQUUsSUFBSTtJQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsR0FBRyxDQUFDLEVBQUwsQ0FBSyxDQUFDLENBQUE7SUFFMUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFJLENBQUM7UUFDckMsSUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUV6QyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNyQixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN0QixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixDQUFDLEVBQUUsQ0FBQTtRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFBO0lBRVgsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDeEMsSUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUV6QyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDdkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUE7QUFDWixDQUFDO0FBRUQsbUJBQW1CLEtBQUssRUFBRSxLQUFLO0lBQzdCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQTtJQUVYLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxDQUFDLENBQUE7SUFDVixDQUFDO0lBRUQsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxJQUFJLEdBQUcsQ0FBQTtJQUVQLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ25CLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEIsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQTtRQUNaLENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDaEIsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUE7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYSA9IFsgNSwgOSwgNCwgMywgOCwgMiBdXG5jb25zdCBiID0gWyA5LCA4LCAxLCAxMCwgMSwgNCBdXG5cbmNvbnNvbGUubG9nKHNvbHZlKGEsIGIpKVxuXG5mdW5jdGlvbiBzb2x2ZSAod29ya2Vycywgam9icykge1xuICBqb2JzLnNvcnQoKGEsIGIpID0+IGEgLSBiKVxuICBcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB3b3JrZXJzLmxlbmd0aDsgKSB7XG4gICAgY29uc3QgaW5kZXggPSBmaW5kSW5kZXgoam9icywgd29ya2Vyc1tpXSlcbiAgICBcbiAgICBpZiAoam9ic1tpbmRleF0gPT09IHdvcmtlcnNbaV0pIHtcbiAgICAgIGpvYnMuc3BsaWNlKGluZGV4LCAxKVxuICAgICAgd29ya2Vycy5zcGxpY2UoaSwgMSlcbiAgICB9IGVsc2Uge1xuICAgICAgaSsrXG4gICAgfVxuICB9XG4gIFxuICBsZXQgc3VtID0gMFxuICBcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB3b3JrZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgaW5kZXggPSBmaW5kSW5kZXgoam9icywgd29ya2Vyc1tpXSlcbiAgICBcbiAgICBzdW0gKz0gTWF0aC5hYnMoam9ic1tpbmRleF0gLSB3b3JrZXJzW2ldKVxuXG4gICAgam9icy5zcGxpY2UoaW5kZXgsIDEpXG4gIH1cbiAgXG4gIHJldHVybiBzdW1cbn1cblxuZnVuY3Rpb24gZmluZEluZGV4KGFycmF5LCB2YWx1ZSkge1xuICBsZXQgaGlnaCA9IGFycmF5Lmxlbmd0aCAtIDFcbiAgbGV0IGxvdyA9IDBcblxuICBpZiAodmFsdWUgPCBhcnJheVtsb3ddKSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuXG4gIGlmICh2YWx1ZSA+IGFycmF5W2hpZ2hdKSB7XG4gICAgcmV0dXJuIGhpZ2hcbiAgfVxuICBcbiAgbGV0IG1pZFxuXG4gIHdoaWxlIChoaWdoID49IGxvdykge1xuICAgIG1pZCA9IChoaWdoICsgbG93KSA+PiAxO1xuXG4gICAgaWYgKHZhbHVlID09PSBhcnJheVttaWRdKSB7XG4gICAgICByZXR1cm4gbWlkXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA8IGFycmF5W21pZF0pIHtcbiAgICAgIGhpZ2ggPSBtaWQgLSAxXG4gICAgfSBlbHNlIHtcbiAgICAgIGxvdyA9IG1pZCArIDFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWlkXG59Il19 | |
| </script> | |
| <script id="jsbin-source-javascript" type="text/javascript">const a = [ 5, 9, 4, 3, 8, 2 ] | |
| const b = [ 9, 8, 1, 10, 1, 4 ] | |
| console.log(solve(a, b)) | |
| function solve (workers, jobs) { | |
| jobs.sort((a, b) => a - b) | |
| for (var i = 0; i < workers.length; ) { | |
| const index = findIndex(jobs, workers[i]) | |
| if (jobs[index] === workers[i]) { | |
| jobs.splice(index, 1) | |
| workers.splice(i, 1) | |
| } else { | |
| i++ | |
| } | |
| } | |
| let sum = 0 | |
| for (var i = 0; i < workers.length; i++) { | |
| const index = findIndex(jobs, workers[i]) | |
| sum += Math.abs(jobs[index] - workers[i]) | |
| jobs.splice(index, 1) | |
| } | |
| return sum | |
| } | |
| function findIndex(array, value) { | |
| let high = array.length - 1 | |
| let low = 0 | |
| if (value < array[low]) { | |
| return 0 | |
| } | |
| if (value > array[high]) { | |
| return high | |
| } | |
| let mid | |
| while (high >= low) { | |
| mid = (high + low) >> 1; | |
| if (value === array[mid]) { | |
| return mid | |
| } else if (value < array[mid]) { | |
| high = mid - 1 | |
| } else { | |
| low = mid + 1 | |
| } | |
| } | |
| return mid | |
| }</script></body> | |
| </html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| "use strict"; | |
| var a = [5, 9, 4, 3, 8, 2]; | |
| var b = [9, 8, 1, 10, 1, 4]; | |
| console.log(solve(a, b)); | |
| function solve(workers, jobs) { | |
| jobs.sort(function (a, b) { return a - b; }); | |
| for (var i = 0; i < workers.length;) { | |
| var index = findIndex(jobs, workers[i]); | |
| if (jobs[index] === workers[i]) { | |
| jobs.splice(index, 1); | |
| workers.splice(i, 1); | |
| } | |
| else { | |
| i++; | |
| } | |
| } | |
| var sum = 0; | |
| for (var i = 0; i < workers.length; i++) { | |
| var index = findIndex(jobs, workers[i]); | |
| sum += Math.abs(jobs[index] - workers[i]); | |
| jobs.splice(index, 1); | |
| } | |
| return sum; | |
| } | |
| function findIndex(array, value) { | |
| var high = array.length - 1; | |
| var low = 0; | |
| if (value < array[low]) { | |
| return 0; | |
| } | |
| if (value > array[high]) { | |
| return high; | |
| } | |
| var mid; | |
| while (high >= low) { | |
| mid = (high + low) >> 1; | |
| if (value === array[mid]) { | |
| return mid; | |
| } | |
| else if (value < array[mid]) { | |
| high = mid - 1; | |
| } | |
| else { | |
| low = mid + 1; | |
| } | |
| } | |
| return mid; | |
| } | |
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNiaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJqc2Jpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsSUFBTSxDQUFDLEdBQUcsQ0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBRSxDQUFBO0FBQzlCLElBQU0sQ0FBQyxHQUFHLENBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUUsQ0FBQTtBQUUvQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUV4QixlQUFnQixPQUFPLEVBQUUsSUFBSTtJQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsR0FBRyxDQUFDLEVBQUwsQ0FBSyxDQUFDLENBQUE7SUFFMUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFJLENBQUM7UUFDckMsSUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUV6QyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNyQixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN0QixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixDQUFDLEVBQUUsQ0FBQTtRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFBO0lBRVgsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDeEMsSUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUV6QyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDdkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUE7QUFDWixDQUFDO0FBRUQsbUJBQW1CLEtBQUssRUFBRSxLQUFLO0lBQzdCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQTtJQUVYLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxDQUFDLENBQUE7SUFDVixDQUFDO0lBRUQsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxJQUFJLEdBQUcsQ0FBQTtJQUVQLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ25CLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEIsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQTtRQUNaLENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDaEIsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUE7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYSA9IFsgNSwgOSwgNCwgMywgOCwgMiBdXG5jb25zdCBiID0gWyA5LCA4LCAxLCAxMCwgMSwgNCBdXG5cbmNvbnNvbGUubG9nKHNvbHZlKGEsIGIpKVxuXG5mdW5jdGlvbiBzb2x2ZSAod29ya2Vycywgam9icykge1xuICBqb2JzLnNvcnQoKGEsIGIpID0+IGEgLSBiKVxuICBcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB3b3JrZXJzLmxlbmd0aDsgKSB7XG4gICAgY29uc3QgaW5kZXggPSBmaW5kSW5kZXgoam9icywgd29ya2Vyc1tpXSlcbiAgICBcbiAgICBpZiAoam9ic1tpbmRleF0gPT09IHdvcmtlcnNbaV0pIHtcbiAgICAgIGpvYnMuc3BsaWNlKGluZGV4LCAxKVxuICAgICAgd29ya2Vycy5zcGxpY2UoaSwgMSlcbiAgICB9IGVsc2Uge1xuICAgICAgaSsrXG4gICAgfVxuICB9XG4gIFxuICBsZXQgc3VtID0gMFxuICBcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB3b3JrZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgaW5kZXggPSBmaW5kSW5kZXgoam9icywgd29ya2Vyc1tpXSlcbiAgICBcbiAgICBzdW0gKz0gTWF0aC5hYnMoam9ic1tpbmRleF0gLSB3b3JrZXJzW2ldKVxuXG4gICAgam9icy5zcGxpY2UoaW5kZXgsIDEpXG4gIH1cbiAgXG4gIHJldHVybiBzdW1cbn1cblxuZnVuY3Rpb24gZmluZEluZGV4KGFycmF5LCB2YWx1ZSkge1xuICBsZXQgaGlnaCA9IGFycmF5Lmxlbmd0aCAtIDFcbiAgbGV0IGxvdyA9IDBcblxuICBpZiAodmFsdWUgPCBhcnJheVtsb3ddKSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuXG4gIGlmICh2YWx1ZSA+IGFycmF5W2hpZ2hdKSB7XG4gICAgcmV0dXJuIGhpZ2hcbiAgfVxuICBcbiAgbGV0IG1pZFxuXG4gIHdoaWxlIChoaWdoID49IGxvdykge1xuICAgIG1pZCA9IChoaWdoICsgbG93KSA+PiAxO1xuXG4gICAgaWYgKHZhbHVlID09PSBhcnJheVttaWRdKSB7XG4gICAgICByZXR1cm4gbWlkXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA8IGFycmF5W21pZF0pIHtcbiAgICAgIGhpZ2ggPSBtaWQgLSAxXG4gICAgfSBlbHNlIHtcbiAgICAgIGxvdyA9IG1pZCArIDFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWlkXG59Il19 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment