class Solution { public: void sortColors(vector<int>& nums) { map<int,int>mp; for(int i=0;i<nums.size();i++) mp[nums[i]]++; for(int i=0;i<mp[0];i++) nums[i]=0; for(int i=mp[0];i<mp[0]+mp[1];i++) nums[i]=1; for(int i=mp[0]+mp[1];i<nums.size();i++) nums[i]=2; } };
class Solution { public: void sortColors(vector<int>& nums) { int l=0,r=nums.size(); int i=0; while(i<r) { if(nums[i]==0) { swap(nums[i],nums[l]);l++;i++; } else if(nums[i]==1) { i++; } else { r--;swap(nums[i],nums[r]); } } } };
原文:https://www.cnblogs.com/Vampire6/p/13172217.html