Leetcode 75

class Solution {
public:
    void sortColors(vector<int>& nums) {
        if(nums.size() == 0) return;
        const int RED = 0, WHITE = 1, BLUE = 2;
        int rp, wp, bp;
        rp = wp = 0;
        bp = nums.size();
        for(; wp < bp; wp++){
            if(nums[wp] == RED){
                swap(nums[rp], nums[wp]);
                rp++;
            }
            else if(nums[wp] == BLUE){
                bp--;
                swap(nums[wp], nums[bp]);
                wp--;
            }
        }
        return;
    }
};

 

 看图,每次遇到一个新元素,我们确保之前的元素已经如图上安排好了。

那么我相信代码就不能看懂。

 

posted on 2020-10-07 23:09  Ricochet!  阅读(131)  评论(0编辑  收藏  举报