Сортировка

Штрихкоды без повторов

Переставить штрихкоды так, чтобы одинаковые не стояли рядом

Средний

Постановка задачи

Описание (LeetCode - 1054. Distant Barcodes)

Дан массив barcodes, где barcodes[i] - значение i-го штрихкода.

Нужно переставить элементы так, чтобы никакие два соседних штрихкода не были одинаковыми.

Можно вернуть любой корректный ответ.

Гарантируется, что ответ существует.

Пример 1:

barcodes = [1, 1, 1, 2, 2, 2]

Результат:

[1, 2, 1, 2, 1, 2]

Пример 2:

barcodes = [1, 1, 1, 1, 2, 2, 3, 3]

Результат:

[1, 2, 1, 2, 1, 3, 1, 3]

Пояснение:

Одинаковые значения 1 не стоят рядом, потому что мы разложили их через одну позицию.

Ограничения:

  • 1 <= barcodes.length <= 10⁴
  • 1 <= barcodes[i] <= 10⁴
  • Гарантируется, что ответ существует.

Решение

Главная проблема в этой задаче - самое частое значение. Если его расставлять слишком плотно, то одинаковые штрихкоды могут оказаться рядом.

Перейдите на Premium, чтобы продолжить

Разблокируйте доступ к этой статье и всем остальным материалам с NowInterview Premium

Перейти на Premium