/*
Создается словарь в котором, ключом будет значение элемента массива, а значением количество вхождений.
Если значение в словаре на какой-либо из итераций больше N/2, то возвращается текущий элемент.
Если по окончании итераций мажоритарный элемент не найден - выбрасывается сообщение об ошибке.
*/
function solve(arr) {
const majoritarCount = Math.floor(arr.length / 2);
const dict = {};
for (let i=0; i<arr.length; i++) {
const v = arr[i];
dict[v] = (dict[v] || 0) + 1;
if (dict[v] > majoritarCount) {
return v;
}
}
throw new Error("majoritar element not found");
}
console.log(solve([1, 2, 3, 4, 1, 1, 1]));
Last active
June 12, 2018 14:55
-
-
Save KolosovAO/e1924d1e05dcdaa5eaa864f30b56fda3 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment