顏色分類 leetcode75

2021-10-05 02:54:51 字數 733 閱讀 8353

給定乙個包含紅色、白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色、白色、藍色順序排列。

此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。

注意:

不能使用**庫中的排序函式來解決這道題。

示例:

輸入:[2,0,2,1,1,0]輸出:[0,0,1,1,2,2]
高階:

思路:這道題可以有很多解法,計數法,還有大不了再開一塊空間初始化為全1,再依此放0,2就行了唄,所以題目有了要求,要求一趟掃瞄,於是雙指標掃瞄便來了,其實也很簡單,就是掃瞄如果當前nums[cur]是0的話就交換掉left位置本該為0的值,left++;2也類似,right--就行 ,但是要注意的是如果nums[cur]==0,而且cur==left就說明left位置已經是0了,這時候不需要交換,cur++,right++,否則會出問題哦~

class solution else if(nums[cur]==0)else if(nums[cur]==2)else

}return;}};

leetcode 75 顏色分類

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

leetcode75 顏色分類

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

leetcode75 顏色分類

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