Ctrl K

Убрать одно, чтобы сравнять

Сложная
Дан массив положительных чисел values. Найдите самый длинный префикс (начальный кусок) массива, из которого можно удалить **ровно один** элемент так, чтобы все числа, оставшиеся в нём, встречались одинаковое число раз. Если после удаления ничего не осталось, условие считается выполненным. Верните длину такого префикса.
Пример 1
values=[4, 4, 7, 7, 9, 9, 9, 2] → 7

Префикс длины 7 — [4, 4, 7, 7, 9, 9, 9]: убираем одну девятку, и все числа встречаются по 2 раза. Для всего массива так не выйдет.

Пример 2
values=[5, 5, 5, 1, 1, 1, 8] → 7

Убираем 8 — пятёрки и единицы встречаются по 3 раза. Подходит весь массив, ответ 7.

Пример 3
values=[3, 3] → 2
Ограничения
  • 2 ≤ len(values) ≤ 10⁵
  • 1 ≤ values[i] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДорешать судоку СложнаяНаименьшее отсутствующее положительное СложнаяВсе способы расставить пробелы СложнаяЗвёзды на одной прямой СложнаяОстрова после каждой засыпки Сложная
загружаем Python…
Вход
values=[4, 4, 7, 7, 9, 9, 9, 2]
Ожидается
7

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 107 тестов на сервере, включая скрытые.