Menu
CoddyTech

Sort Colors

Ti viene dato un array nums in cui ogni valore è 0, 1 o 2. Immagina che rappresentino tre colori, ad esempio rosso, bianco e blu. Riordina l'array in modo che tutti gli 0 vengano prima, poi tutti gli 1 e infine tutti i 2, e restituiscilo.

Risolvi il problema senza usare una funzione di ordinamento di una libreria. L'obiettivo è usare ciò che sai sui valori.

Funzione

sortColors(nums: integer-array) → integer-array
numsinteger-array
i colori, ciascuno 0, 1 o 2
Restituisceinteger-array
gli stessi valori, prima tutti gli 0, poi tutti gli 1, quindi tutti i 2

Vincoli

  • 1 ≤ nums.length ≤ 1.5 × 104
  • Ogni nums[i] è 0, 1 o 2.
  • Potrebbe mancare un colore e l’array potrebbe contenere un solo colore.

Esempi

Input
nums = [2, 1, 0, 2, 0, 1, 1]
Output
[0, 0, 1, 1, 1, 2, 2]
Spiegazione
L’array contiene due 0, tre 1 e due 2, quindi il risultato è esattamente questo: due 0, poi tre 1, poi due 2.

lock icon+17 test nascosti all’invio

challenge icon

Per approfondire

Che cosa cambieresti se ci fossero k colori invece di tre, con k molto più piccolo della lunghezza dell’array?

Ripristina il codice
def sortColors(nums):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

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

Atteso

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