給定乙個包含紅色、白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色、白色、藍色順序排列。
此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。
注意:
不能使用**庫中的排序函式來解決這道題。
示例:
輸入:[2,0,2,1,1,0]輸出:[0,0,1,1,2,2]高階:
這道題按理來說直接呼叫algorithm中的sort排序就可以,但是題中有些要求,所以另求他法,其中乙個比較簡單的思路就是將0移動到最前面,將2移動到最後面,那麼剩下的位置上就是1,所以這樣可以一遍遍歷陣列後排序,下面給出**:
void sortcolors(vector& nums)
else if(nums[k]==2&&k下面再給出稍許改動後可自己編譯執行的**:
#include#include#include#define maxn 1024
using namespace std;
int sortcolors(int *nums,int n)
else if(nums[k]==2&&k>n;
for(int i=0;i>nums[i];
} sortcolors(nums,n);
return 0;
}
leetcode 顏色分類
75顏色分類 給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,0 輸出 0,0...
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,...