@Jnna

Определить имеются ли в массиве одинаковые элементы. Вывести значения наиболее часто встречающегося элемента?

Определить имеются ли в массиве одинаковые элементы. Вывести значения наиболее часто встречающегося элемента (если есть несколько элементов встречающихся одинаковое количество раз, то вывести первый из них).
  • Вопрос задан
  • 264 просмотра
Пригласить эксперта
Ответы на вопрос 2
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Или отсортируйте массив, или используйте хеш-мап (unordered_map) для подстчета того, сколько раз каждый элемент встретился. Если где-то этот счетчик стал больше 1, то есть повторяющиеся элементы.

Для поиска самого частого найдите максимум из значений в хешмапе, потом пройдитесь по массиву еще раз и выведите первый элемент, счетчик для которого равен этому максимуму.
Ответ написан
Комментировать
@WAR_VIK
Можно вот так:
#include <iostream>

int main() {
int arr[]{5,2,1,3,1,4,2,1,6,2,6};
int res{0}, max{0};
for(int i : arr) {
  int count{0};
  for(int j : arr) {
    if(i == j) ++count;
  }
  if(max < count) { res = i; max = count; }
}
std::cout << "Most encountered number in this array is number - "
<< res << ", which encountered " << max << " times";
return 0;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы