75 顏色分類

2021-10-01 18:54:23 字數 743 閱讀 1796

題目.

middle

這個題我一時間懵逼,但是思路是對的,就是假設有三個陣列,leftstart左邊都是0, rightstart 右邊都是2,所以我們要處理的就是中間部分,有個重要點沒想到的就是i與leftstart之間的數只有可能是1.當num[i]為0時, leftstart和i都必須前進,為2的時候只有rightstart前進。

這道題目要求只能遍歷一次,所以才搞的複雜了,其實遍歷一次並沒有提高時間或者空間效率,因為一次遍歷中增加了很多比較和交換的操作,為了演算法而演算法了。

package main

import

"fmt"

func

sortcolors

(nums [

]int

)else

if nums[i]==0

else

if nums[i]==2

}}func

main()

sortcolors

(nums)

fmt.

println

(nums)

}

o(n)

o(1)

執行用時 :

0 ms

, 在所有 golang 提交中擊敗了

100.00%

的使用者記憶體消耗 :

2.1 mb

, 在所有 golang 提交中擊敗了

100.00%

的使用者

75 顏色分類

給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,0 輸出 0,0,1,1,2,...

75 顏色分類

給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,0 輸出 0,0,1,1,2,...

75 顏色分類

給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,0 輸出 0,0,1,1,2,...