进阶解法:
- 你可以不使用代码库中的排序函数来解决这道题吗?
- 你能想出一个仅使用常数空间的一趟扫描算法吗?
var sortColors = function(nums) {
//遍历一次即可O(n)
let len = nums.length;
let l=-1,r= len; //记录左右的范围
let i=0;
while(i<r){
if(nums[i]< 1){
[nums[l+1],nums[i]]=[nums[i],nums[l+1]];
l++;
i++;
}else if(nums[i]==1){
i++;
}else if(nums[i]>1){
[nums[i],nums[r-1]]=[nums[r-1],nums[i]];
r--;
}
}
};