美文网首页
75. Sort Colors

75. Sort Colors

作者: jecyhw | 来源:发表于2019-06-01 20:53 被阅读0次

    题目链接

    https://leetcode.com/problems/sort-colors/

    解题思路

    把0的往左边交换,把2的交换到右边

    代码

    class Solution {
    public:
        void sortColors(vector<int>& nums) {
            //s从前往后指向第一个不是0的位置,e从后往前指向第一个不是2的位置
            int s = 0, e = nums.size() - 1;
            for (int i = s; i <= e;) {
                if (nums[i] == 0) {
                    //0往左交换
                    if (i != s) {
                        swap(nums[i], nums[s]);
                    }
                    s++;
                    i++;
                } else if (nums[i] == 2) {
                    //2往右交换
                    if (nums[e] != 2) {
                        swap(nums[i], nums[e]);
                    }
                    e--;
                } else {
                    i++;
                } 
            }
        }
    };
    

    相关文章

      网友评论

          本文标题:75. Sort Colors

          本文链接:https://www.haomeiwen.com/subject/wlxztctx.html