Sort Colors

题意:将三种颜色排列,相同的颜色放在一起,依据红绿蓝012的顺序放置
分析:统计红绿蓝分别有多少个,然后重新给数组赋值

class Solution {
public:
    void sortColors(int A[], int n) {
        int num1,num2,num3,i;
        num1=num2=num3=0;
        for(i=0;i<n;i++)
        {
           if(A[i]==0) num1++;
           if(A[i]==1) num2++;
           if(A[i]==2) num3++;
        }
        int k=0;        
        while(num1--) A[k++]=0;
        while(num2--) A[k++]=1;
        while(num3--) A[k++]=2;
    }
};

  

原文地址:https://www.cnblogs.com/zsboy/p/3887257.html