JSFiddle - React, Tailwind, and code Playground
by Eduard Dyckman
HTML
<div id="out"></div>
JavaScript
function solution(A, M){
var eqInd = -1;
var arrLen = A.length;
var checkEqual = function(startIndex, leftScore){
if(startIndex === arrLen){
return 0;
}
var modif = A[startIndex] === M ? 0 : 1;
var diff = checkEqual(startIndex + 1, leftScore + (modif ^ 1));
if(leftScore === diff + modif){
eqInd = startIndex;
}
return diff + modif;
}
checkEqual(0, 0);
return eqInd;
}
var dataSets = [
[[1,2,3,5,3], 5],
[[2,5,5,33,2,3,5], 5],
[[0,3,5,3,2,1], 9],
[[5,2,2,2,35,2], 2]
];
dataSets.forEach(function(val){
$("#out").append("[" + val[0].join(", ") + "] | " + val[1] + " -> " + solution(val[0], val[1]) + "<br>");
});