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