Menu
CoddyTech

Sort Colors

すべての値が 0、1、または 2 である配列 nums が与えられます。これらを赤、白、青などの3色だと考えてください。配列を並べ替えて、すべての 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 です。
  • 色が欠けている場合があり、配列には色が1つだけ含まれている場合があります。

例

入力
nums = [2, 1, 0, 2, 0, 1, 1]
出力
[0, 0, 1, 1, 1, 2, 2]
説明
配列には0が2つ、1が3つ、2が2つ含まれているため、結果もそのとおり、0が2つ、次に1が3つ、そして2が2つです。

lock icon提出時に隠しテスト+17件

challenge icon

発展問題

配列の長さよりもかなり小さい k 色の場合、3 色の代わりに何を変更しますか?

コードをリセット
def sortColors(nums):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

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

期待値

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