leetcode-75-Sort Colors

来源:互联网 发布:卸载windows defender 编辑:程序博客网 时间:2024/05/29 17:41

问题

题目:[leetcode-75]

思路

参考[几种有关排序的常见面试问题]
基本思路就是partition。
增减begin cur end
begin 前面的元素全部是0,
end后面的元素全部是2.
[begin, cur)这个区间的全部是1,这是个很重要的特点!!!

代码

class Solution {public:    void sortColors(vector<int>& nums) {        int begin = 0;        int end = nums.size() - 1;        int cur = 0;        while(cur <= end){            if( nums[cur] == 0 ) {                swap( nums[begin], nums[cur] );                ++begin;                ++cur;            }            else if ( nums[cur] == 1 ) ++ cur;            else{                swap( nums[end], nums[cur] );                end--;            }        }    }};
原创粉丝点击