public class Solution { public void sortColors(int[] A) { if(A == null || A.length == 0){ return; } int len = A.length; int numArr[] = new int[3]; for(int i = 0; i < len; i++){ numArr[A[i]]++; } int k = 0; for(int i = 0; i < 3; i++){ for(int j = 0; j < numArr[i]; j++){ A[k] = i; k++; } } } }
Java AC 2
public class Solution { public void sortColors(int[] A) { if(A == null || A.length == 0){ return; } int len = A.length; int low = 0; int high = len-1; int k = 0; while(k <= high){ if(A[k] == 0){ swap(A, k, low); low++; k = (k <= low) ? low : k; }else if(A[k] == 2){ swap(A, k, high); high--; }else { k++; } } } public void swap(int A[], int i, int j){ int temp = A[i]; A[i] = A[j]; A[j] = temp; } }Python AC
class Solution: # @param A a list of integers # @return nothing, sort in place def sortColors(self, A): alen = len(A) numArr = [0, 0, 0] for i in range(alen): numArr[A[i]] += 1 k = 0 for i in range(3): for j in range(numArr[i]): A[k] = i k += 1