Я пытаюсь выяснить, имеет ли данный массив A, содержащий N целых чисел, «главный элемент». Главный элемент этого массива - это элемент, который больше чем n/2 раза в массиве.Эффективный алгоритм для нахождения главного элемента в массиве?
Например:
- массив
A={5,1,3,5,5}
имеет главный элемент (в данном случае 5). - массив
A={5,1,2,3,3}
не имеет основного элемента.
Ниже приведен мой код.
Я хотел бы знать, что является наиболее эффективным алгоритмом для решения этой проблемы?
Алгоритм должен возвращать true
, если массив имеет главный элемент и возвращает false
, если он не имеет главного элемента.
boolean masterElement(int[] a) {
int count = 0;
boolean check = false;
for (int i = 0; i < a.length/2; i++) {
for (int j = 0; j < a.length; j++) {
if (a[i] == a[j]) {
count++;
}
}
if (count >= a.length/2) {
check = true;
break;
}
count = 0;
}
return check;
}
Что вы пробовали? – Sanjeev
Почему вы не попробуете это самостоятельно? –
Извинения за мои знания в области математики, но означает ли это, что главный элемент - это тот, который упоминается 3 или более раз в массиве? – kiradotee