# LC75 - Sort Colors # Two pointers ```java= class Solution { public void sortColors(int[] nums) { // sanity check // ... int length = nums.length; // elements from 0 to i but not include i is 0 // elements from i to k but not include k is 1 // elements from k to j is unknown // elements from j to length-1 but not include j is 2 int i = 0; int j = length - 1; int k = 0; while (k <= j) { if (nums[k] == 0) { swap(nums, k++, i++); } else if (nums[k] == 1) { k++; } else if (nums[k] == 2) { swap(nums, k, j--); } } } private void swap(int[] nums, int i, int j) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } } ```