Задачи
August 22

Задача. Особенное число массива

Дан массив целых чисел arr, особенное число — это целое число, количество вхождений которого в массиве равна его значению.

Необходимо вернуть наибольшее особенное целое число в массиве. Если такого числа нет верните -1.

Входные данные: arr - массив целых чисел от 1 до 500, размер массива от 1 до 500.

Примеры:

  1. arr = [2,2,3,4]
    Output: 2
  2. arr = [1,2,2,3,3,3]
    Output: 3
  3. arr = [2,2,2,3,3]
    Output: -1

Разбор

Задача простая, ее можно реализовать при помощи хэш-таблицы и далее найти наибольший ключ в ней. Также не забываем про частный случай, при 1м элементе в исходном массиве. Мы реализуем задачу на языке C#, в нем есть структура данных SortedDictionary - хэш-таблица с автоматической сортировкой, поэтому воспользуемся ее.

Реализация

Play-test

https://dotnetfiddle.net/4Wb2zg