Skip to content

Instantly share code, notes, and snippets.

@thecotne
Created September 1, 2020 12:12
Show Gist options
  • Save thecotne/230b1ff61ac984e2dbdb6c85e5bd599f to your computer and use it in GitHub Desktop.
Save thecotne/230b1ff61ac984e2dbdb6c85e5bd599f to your computer and use it in GitHub Desktop.
JS Bin // source https://jsbin.com/jizacev
<!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>
"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