题目
代码
class Solution {
public void sortColors(int[] nums) {
int zero = -1, one = 0, two = nums.length;
while(one < two) {
if (nums[one] == 0) {
swap(nums, ++zero, one++);
} else if (nums[one] == 2){
swap(nums, one, --two);
} else {
++one;
}
}
}
private void swap(int[] nums, int i, int j) {
if (nums[i] != nums[j]) {
nums[i] = nums[i] ^ nums[j];
nums[j] = nums[i] ^ nums[j];
nums[i] = nums[i] ^ nums[j];
}
}
}
耗时和内存消耗都挺少的,牛逼啊: