27から75。ソートの色

件名の説明:

配列与えられた  n個の  赤、白または青色のオブジェクト、それらを並べ替える  インプレース  同じ色のオブジェクトは、赤、白、青の順に色で、隣接していることになります。

ここで、我々は、それぞれ、赤、白、青の色を表すために整数0、1を使用し、2う。

注:この問題のためのライブラリのソート機能を使用すると仮定されていません。

例:

入力:[2,0,2,1,1,0] 
出力:[0,0,1,1,2,2]

ファローアップ:

    • むしろ単純溶液は、計数ソートを使用して2つのパス・アルゴリズムです。
      まず、次いで0、1と2の続いての合計数と配列を上書きし、0の、1の、及び2のアレイカウント数を繰り返します。
    • あなただけの一定のスペースを使用して1パスアルゴリズムを考え出すだろうか?

コードの実装:

1  DEF sortColors(自己、NUMS):
 2      I = J = 0
 3      のための K はxrange(LEN(NUMS)):
 4          、V = NUMS [K]
 5          NUMS [K] = 2
 6          場合 V <2 7              NUMS [ J 1 =
 8              、J = + 1
 9の         場合のV == 0:
 10              NUMS [I] = 0
 11              I + = 1

 

おすすめ

転載: www.cnblogs.com/tbgatgb/p/11043147.html