75顏色分類
給定乙個包含紅色、白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色、白色、藍色順序排列。
此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。
注意:不能使用**庫中的排序函式來解決這道題。
示例:輸入: [2,0,2,1,1,0]
輸出: [0,0,1,1,2,2]
思路:雙指標很好用!
class
solution
:def
sortcolors
(self, nums)
:"""
:type nums: list[int]
:rtype: void do not return anything, modify nums in-place instead.
"""i, l, r =0,
0,len(nums)-1
#定義雙指標
while i <
len(nums)
:if nums[i]==2
and i < r:
#如果數字是2並且還沒到最右邊
nums[i]
, nums[r]
= nums[r],2
#就把最右邊的數字放到i那個位置,然後2放到最右邊
r -=
1#雙指標的右邊就往左移
elif nums[i]==0
and i > l:
#如果陣列數字是0,大於左指標
nums[i]
, nums[l]
= nums[l],0
#左指標的數就和到那個位置,0就給左指標位置
l +=
1#左指標右移一位
else
: i +=
1
LeetCode 顏色分類
給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,0 輸出 0,0,1,1,2,...
LeetCode 顏色分類
給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,0 輸出 0,0,1,1,2,...
LeetCode 分類顏色
leetcode 分類顏色 給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地 對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,...