这次击败了100%的C++编程者,题目比较简单,三路快速排(三指针)的解决方法。其实博主一开始还没有想到Follow Up中的计算-还原二次遍历法 :)。既然贴了eazy标签就不解释了,直接上代码。

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

        OK,See You Next Chapter!

发表评论

邮箱地址不会被公开。 必填项已用*标注