leetcodeブラシタイトル・ノート(Golang) - 75ソート色。

75.ソートの色

同じ色のオブジェクトが隣接するように、白、青、赤の色で、ソートそれらインプレース、順に有するアレイ所与N、赤、白または青色オブジェクト。

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

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

例:

入力:[2,0,2,1,1,0]
出力:[0,0,1,1,2,2]
フォローアップ:

むしろ単純溶液は、計数ソートを使用して2つのパス・アルゴリズムです。
まず、反復0、1'S、2'S、次いで0、1と2つの続いての総数と、その後上書きアレイのアレイカウント数。
あなただけの一定のスペースを使用して1パスアルゴリズムを考え出すだろうか?

func sortColors(nums []int)  {
	l := 0
	r := len(nums) - 1
	for i := 0; i < len(nums); i++ {
		if nums[i] == 0 {
			nums[l], nums[i] = nums[i], nums[l]
			l++
		} else if nums[i] == 2 && i < r {
			nums[r], nums[i] = nums[i], nums[r]
			r--
            i--
		}
	}
}
发布了65 篇原创文章 · 获赞 0 · 访问量 358

おすすめ

転載: blog.csdn.net/weixin_44555304/article/details/104286625
おすすめ