leetcode 顏色分類

2021-09-10 15:06:36 字數 958 閱讀 5756

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,...