JSFiddle - React, Tailwind, and code Playground
by dpnminh
JavaScript
var arrT = [1,1,1,1,2,2,4,4,4,4,5,5,5,7,7,7];
function findDuplicateIndex(start, end, arr, map){
var skipFirst = false;
debugger;
if (arr[start] !== arr[end]){
var startMap = map[arr[start]],
endMap = map[arr[end]];
startMap.to = start;
!endMap ? endMap = {
from: end
}: endMap.from = end;
return;
}
else{
skipFirst = true;
}
var mid = Math.floor((start + end)/2);
if (!skipFirst && start !== mid){
findDuplicateIndex(start, mid, arr, map);
}
if ((mid + 1) !== end){
findDuplicateIndex(mid + 1, end, arr, map);
}
}
var mapped = {};
mapped["1"] = {
from: 0
};
findDuplicateIndex(0, arrT.length - 1, arrT, mapped);
console.log(mapped);