Sort Colors (Leetcode 75)

这题考查 Three-Way Partition 要点是while loop条件是有等于号的

while(start <= right)

同时,了解一下Rainbow Sort的算法。

void sortColors(vector<int> &nums) {
        // write your code here
        if(nums.empty()) return;
        int left = 0, right = nums.size()-1;
        int start = 0;
        while(start <= right){
            if(nums[start] == 0){
                swap(nums[left], nums[start]);
                left++; start++;
            }else if(nums[start] == 2){
                swap(nums[start], nums[right]);
                right--;
            }else{
                start++;
            }
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容