Python 中的對顏色進行排序
假設我們有一個包含 n 個物件的陣列。這些物件被染成了紅色、白色或藍色,請對它們進行就地排序,以便同顏色的物件相鄰。顏色按紅、白、藍的順序。這裡,我們將使用 0、1 和 2 分別表示紅色、白色和藍色。因此,如果陣列為 [2,0,2,1,1,0],則輸出將為 [0,0,1,1,2,2]
要解決這個問題,我們將遵循以下步驟 −
- 設定低 := 0、中 := 0 和高 := 陣列長度 – 1
- 當 mid <= high 時
- 如果 arr[mid] = 0,則交換 arr[mid] 和 arr[low],並使 low 和 mid 均加 1
- 否則,當 arr[mid] = 2 時,交換 arr[high] 和 arr[mid],使 high 減 1
- 否則,將 mid 加 1
示例(Python)
讓我們看看以下實現以獲得更好的理解 −
class Solution(object): def sortColors(self, nums): low = 0 mid = 0 high = len(nums)-1 while mid<=high: if nums[mid] == 0: nums[low],nums[mid] = nums[mid],nums[low] low+=1 mid += 1 elif nums[mid] == 2: nums[high], nums[mid] = nums[mid], nums[high] high-=1 else: mid += 1 return nums ob1 = Solution() print(ob1.sortColors([2,0,2,1,1,0]))
輸入
[2,0,2,1,1,0]
輸出
[0,0,1,1,2,2]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP