1:
class Solution {
public:
void sortColors(int A[], int n) {
int b[3] = {0,0,0};
for(int i=0;i<n;i++)
{
b[A[i]]++;
}
int i=0,j=0,k=0;
for( ;i<b[0];i++)
{
A[i]=0;
}
for( ;j<b[1];j++)
{
A[i+j]=1;
}
for(;k<b[2];k++)
{
A[i+j+k]=2;
}
}
};
2:
class Solution {
public:
void sortColors(int A[], int n) {
int i=-1,j=-1,k=-1;
for(int m=0;m<n;m++)
{
if(A[m]==0)
{
A[++k]=2;
A[++j]=1;
A[++i]=0;
}
else if(A[m]==1)
{
A[++k]=2;
A[++j]=1;
}
else
{
A[++k]=2;
}
}
}
};
原文:http://blog.csdn.net/majing19921103/article/details/44987721