颜色分类 class Solution: def sortColors(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ p0,p1 = 0,0 for index in range(len(nums)): if nums[index] == 0: nums[p0],nums[index] = nums[index],nums[p0] if p0 < p1: nums[index],nums[p1] = nums[p1],nums[index] p0 += 1 p1 += 1 elif nums[index] == 1: nums[p1],nums[index] = nums[index],nums[p1] p1 += 1 class Solution { public: void sortColors(vector<int>& nums) { int p1 = 0, p2 = 0; for(int i = 0; i < nums.size(); ++i){ if(nums[i] == 1){ swap(nums[i], nums[p2]); ++ p2; }else if(nums[i] == 0){ swap(nums[i], nums[p1]); if(p1 < p2){ swap(nums[i], nums[p2]); } ++ p1; ++ p2; } } } };