Created
March 25, 2020 15:48
-
-
Save victorkurauchi/71623edb1b0a9e679b817b107e973954 to your computer and use it in GitHub Desktop.
Score 100/100
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// you can write to stdout for debugging purposes, e.g. | |
// console.log('this is a debug message'); | |
function solution(A) { | |
// write your code in JavaScript (Node.js 8.9.4) | |
let total = A.length; | |
let occurences = {} | |
let indexes = []; | |
for (let i = 0; i < A.length; i++) { | |
let elm = A[i] | |
if (!occurences[elm]) { | |
occurences[elm] = { | |
count: 0, | |
indexes: [], | |
} | |
} | |
occurences[elm].count += 1; | |
occurences[elm].indexes.push(i); | |
} | |
let dominator = Object.keys(occurences).find(idx => { | |
return occurences[idx].count > (total/2) | |
}) | |
// console.log(occurences[dominator].indexes) | |
return dominator ? occurences[dominator].indexes[0] : -1 | |
} | |
/* | |
An array A consisting of N integers is given. The dominator of array A is the value that occurs in more than half of the elements of A. | |
For example, consider array A such that | |
A[0] = 3 A[1] = 4 A[2] = 3 | |
A[3] = 2 A[4] = 3 A[5] = -1 | |
A[6] = 3 A[7] = 3 | |
The dominator of A is 3 because it occurs in 5 out of 8 elements of A (namely in those with indices 0, 2, 4, 6 and 7) and 5 is more than a half of 8. | |
Write a function | |
function solution(A); | |
that, given an array A consisting of N integers, returns index of any element of array A in which the dominator of A occurs. The function should return −1 if array A does not have a dominator. | |
For example, given array A such that | |
A[0] = 3 A[1] = 4 A[2] = 3 | |
A[3] = 2 A[4] = 3 A[5] = -1 | |
A[6] = 3 A[7] = 3 | |
the function may return 0, 2, 4, 6 or 7, as explained above. | |
Write an efficient algorithm for the following assumptions: | |
N is an integer within the range [0..100,000]; | |
each element of array A is an integer within the range [−2,147,483,648..2,147,483,647]. | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment