LeetCode 75. Sort Colors(按颜色进行排序)

题意:按颜色进行排序。

分析:荷兰国旗问题三分partition          S(n)=O(1)

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

  

posted @ 2020-03-30 17:08  Somnuspoppy  阅读(127)  评论(0编辑  收藏  举报