Leetcode - 75 Sort Colors (Medium)
题目描述:0、1、2 分别代表三种颜色,给定由这三个数组组成的数组,将数组内的元素按照 0、1、2 的顺序排列。
Input: [2,0,2,1,1,0]
Output: [0,0,1,1,2,2]
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, --two, one);
} else {
one++;
}
}
}
public void swap(int[] nums, int a, int b) {
int temp = nums[a];
nums[a] = nums[b];
nums[b] = temp;
}