扫描一遍。是0放到前面,是2放到后面,最后中间就是1。用两个变量记录已经放了多少0和2。
-
class Solution {
-
public:
-
void sortColors(int A[], int n) {
-
int pos1=0;
-
int pos2=n-1;
-
-
for(int i=0;i<=pos2;)
-
{
-
if(0==A[i]) {int tmp=A[i]; A[i]=A[pos1]; A[pos1]=tmp; pos1++;i++;}
-
else if(2==A[i]) {int tmp=A[i]; A[i]=A[pos2]; A[pos2]=tmp; pos2--;}
-
else i++;
-
}
-
return ;
-
}
-
};
阅读(1444) | 评论(0) | 转发(0) |