原题链接:颜色分类
个人解法
思路:
因为颜色只有三种,用哈希表存下三种颜色的数量,然后依次从小到大重新插入到原数组中。
时间复杂度: O ( n ) O(n) O(n)
代码:
class Solution {
public:
void sortColors(vector<int>& nums) {
int n = nums.size();
vector<int> st(3);
for(auto &t : nums) ++ st[t];
for(int num = 0, i = 0;num < 3;num ++) {
while(st[num]) {
nums[i ++] = num;
-- st[num];
}
}
}
};
``