TTTTT2
by AntonLapshin
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Coding challenge</title>
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.9.2.css">
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script src="https://code.jquery.com/qunit/qunit-2.9.2.js"></script>
</body>
</html>
JavaScript
/* const findNumberOfFairIndexes = ({ A, B }) => {
const sumA = [];
const sumB = [];
for(let i = 0; i < A.length; i++){
sumA[i] = (i === 0 ? 0 : sumA[i - 1]) + A[i];
sumB[i] = (i === 0 ? 0 : sumB[i - 1]) + B[i];
}
const mean = sumA[A.length - 1] / 2;
const numberOfFairIndexes = sumA.filter((a, i) => {
return a === mean && sumB[i] === mean && i !== sumA.length - 1;
}).length;
return numberOfFairIndexes;
}; */
const findNumberOfFairIndexes = ({ A, B }) => {
const sumA = [];
const sumB = [];
const map = {};
for(let i = 0; i < A.length; i++){
sumA[i] = (i === 0 ? 0 : sumA[i - 1]) + A[i];
sumB[i] = (i === 0 ? 0 : sumB[i - 1]) + B[i];
if (sumA[i] === sumB[i] && i !== A.length - 1){
map[sumA[i]] = ++map[sumA[i]] || 1;
}
}
const mean = sumA[A.length - 1] / 2;
return map[mean] || 0;
};
function solution({ A, B }) {
var ltA = [];
var ltB = [];
var rtA = [];
var rtB = [];
const N = A.length;
let answer = 0;
for (let li = 0; li < N; li++) {
const ri = N - 1 - li;
if (li == 0) {
ltA[li] = A[li];
ltB[li] = B[li];
rtA[li] = A[ri];
rtB[li] = B[ri];
}
else {
ltA[li] = A[li] + ltA[li - 1];
ltB[li] = B[li] + ltB[li - 1];
rtA[li] = A[ri] + rtA[li - 1];
rtB[li] = B[ri] + rtB[li - 1];
}
}
/*
for (let i = 0; i < N; i++)
if (ltA[i] == ltB[i] && ltB[i] == rtA[N - 1 - i] && rtA[N - 1 - i] == rtB[N - 1 - i])
answer++;
*/
for (let i = 0; i < N; i++)
if (ltA[i] == ltB[i] && ltB[i] == rtA[i] && rtA[i] == rtB[i] && i !== N - 1)
answer++;
console.log({ ltA, ltB, rtA, rtB });
return answer;
}
[
[{ A: [4, -1, 0, 3], B: [-2, 5, 0, 3]}, 2],
[{ A: [2, -2, -3, 3], B: [0, 0, 4, -4]}, 1],
[{ A: [4, -1, 0, 3], B: [-2, 6, 0, 4]}, 0],
[{ A: [3, 2, 6], B: [4, 1, 6]}, 0],
...