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; } };
看图,每次遇到一个新元素,我们确保之前的元素已经如图上安排好了。
那么我相信代码就不能看懂。