https://leetcode-cn.com/problems/sort-colors/
双指针,一个指针指向左边,一个指针指向右边,从左到右遍历元素,等于0放左,移动左指针,等于2放右,移动右指针,当遍历到右指针时停止
class Solution { public void sortColors(int[] nums) { int left = 0; int right = nums.length - 1; int cur = 0; while (cur <= right) { while (nums[cur] == 2 && cur <= right) { swap(nums, cur, right); right--; } while (nums[cur] == 0 && cur >= left) { swap(nums, left, cur); left++; } cur++; } } private void swap(int[] nums, int a, int b) { int temp = nums[a]; nums[a] = nums[b]; nums[b] = temp; } }