1. 075

sort-colors


2. 算法

  • O(n)

双指针:对一个包含0,1,2三个数字的数组重新排列,使得排好序的数组是0,1,2的顺序


3. 代码

class Solution{
public:
    void sortColors(vector<int>& nums){
        int n=nums.size();
        int zeropoint=0,twopoint=n-1;
        int i=0;
        while(i<=twopoint){
            if(nums[i]==0 && i!=zeropoint)
                swap(nums[zeropoint ++],nums[i]);
            else if(nums[i]==2 && i!=twopoint)
                swap(nums[twopoint--],nums[i]);
            else
                i++;
        }
    }
};

results matching ""

    No results matching ""