Menu
CoddyTech

Sort Colors

Дан массив nums, в котором каждое значение — это 0, 1 или 2: три цвета, например красный, белый и синий. Переставь элементы массива так, чтобы сначала шли все 0, затем все 1, а потом все 2, и верни его. Реши задачу без библиотечной функции сортировки.

Функция

sortColors(nums: integer-array) → integer-array
numsinteger-array
цвета, каждое значение — 0, 1 или 2
Возвращаетinteger-array
те же значения: сначала все 0, затем все 1, а потом все 2

Ограничения

  • 1 ≤ nums.length ≤ 1.5 × 104
  • Каждый nums[i] равен 0, 1 или 2.
  • Цвет может отсутствовать, а массив может содержать один цвет.

Примеры

Ввод
nums = [2, 1, 0, 2, 0, 1, 1]
Вывод
[0, 0, 1, 1, 1, 2, 2]
Пояснение
Массив содержит два 0, три 1 и два 2, поэтому результат именно такой: сначала два 0, затем три 1, потом два 2.
challenge icon

Дополнительный вопрос

Что бы вы изменили, если бы цветов было k вместо трёх, причём k было бы намного меньше длины массива?

Сбросить код
def sortColors(nums):
    # Напишите код здесь

Тест #1

Тест #2

Тест #3

Аргумент

nums = [2, 1, 0, 2, 0, 1, 1]

Ожидаемый вывод

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