1
/**
2
* @param {number[]} arr
3
* @return {number[]}
4
*/
5
var threeEqualParts = function (arr) {
6
const ones = arr.reduce((s, n) => s + n, 0);
7
if (ones === 0) return [0, 2];
8
if (ones % 3 !== 0) return [-1, -1];
9
let onesToFind = ones / 3;
10
let k = arr.length;
11
while (onesToFind > 0) if (arr[--k] === 1) --onesToFind;
12
const iter = arr.length - k;
13
const firstOne = arr.indexOf(1);
14
const secondOne = arr.indexOf(1, firstOne + iter);
15
for (let i = 0; i < iter; i++)
16
if (arr[i + firstOne] !== arr[k + i] || arr[i + secondOne] !== arr[k + i])
17
return [-1, -1];
18
return [firstOne + iter - 1, secondOne + iter];
19
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0