[LeetCode] 75. Sort Colors

来源:互联网 发布:韵乐x5效果器软件 编辑:程序博客网 时间:2024/06/11 21:50

思路:
把0都往左边放, 把2都往右边放, 但要注意for循环里要先走2的循环, 因为2有可能把右边的0给换到当前位置, 如果先0循环后2循环, 有可能右边的0就放到当前位置, 然后就没法往左换了.

void sortColors(vector<int>& nums) {    int zeroRight = 0, twoLeft = nums.size() - 1;    for (int i = 0; i <= twoLeft; i++) {        while (nums[i] == 2 && i < twoLeft)            swap(nums[i], nums[twoLeft--]);        while (! nums[i] && i > zeroRight)            swap(nums[i], nums[zeroRight++]);    }}
0 0
原创粉丝点击