时间复杂度:O(N) 空间复杂度:O(1)
class Solution { public void sortColors(int[] nums) { int n = nums.length; int p0 = 0, p2 = n - 1; for (int i = 0; i <= p2; ++i) { while (i <= p2 && nums[i] == 2) { int temp = nums[i]; nums[i] = nums[p2]; nums[p2] = temp; --p2; } if (nums[i] == 0) { int temp = nums[i]; nums[i] = nums[p0]; nums[p0] = temp; ++p0; } } } } public void sortColors(int[] nums) { int len= nums.length; int low = 0 ; int high= len-1; int i=0; while(i<=high){ if(nums[i]==0){ int tmp = nums[i]; nums[i] = nums[low]; nums[low] =tmp; ++i; ++low; }else if(nums[i]==1){ ++i; }else if(i<=high && nums[i]==2){ int tmp = nums[i]; nums[i] = nums[high]; nums[high] =tmp; --high; } } }时间复杂度:O(N) 空间复杂度:O(1)
class Solution { public void sortColors(int[] nums) { int n = nums.length; int ptr = 0; for (int i = 0; i < n; ++i) { if (nums[i] == 0) { int temp = nums[i]; nums[i] = nums[ptr]; nums[ptr] = temp; ++ptr; } } for (int i = ptr; i < n; ++i) { if (nums[i] == 1) { int temp = nums[i]; nums[i] = nums[ptr]; nums[ptr] = temp; ++ptr; } } } }转载链接:https://leetcode-cn.com/problems/sort-colors/solution/yan-se-fen-lei-by-leetcode-solution/