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.

lock icon+17 скрытых тестов при отправке

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]