题目描述:
解析:双指针 <1左边 =1中间 >1右边
class Solution {
public void sortColors(int[] nums) {
int less = -1, more = nums.length, index = 0;
while (index != more) { //循环终止条件
if (nums[index] > 1) {
swap(nums, index, --more);
} else if (nums[index] < 1) {
swap(nums, ++less, index++);
} else {
index++;
}
}
}
private void swap(int[] arr, int p1, int p2) {
int tmp = arr[p1];
arr[p1] = arr[p2];
arr[p2] = tmp;
}
}