LeetCode 75. 颜色分类

    科技2025-02-09  15

    原题目:https://leetcode-cn.com/problems/sort-colors/

     

    思路:

    使用双指针,l记录当前左边到的位置,r记录右边到的位置

    为0,移动到前面。l++,cur++;

    为2移动到后面。r--。(此时不可以cur++,因为nums[r]使我们没有碰到过得元素)

    1时进行下一个元素的判断。cur++

     

    代码:

    class Solution { public: void sortColors(vector<int>& nums) { int l=0,r= nums.size()-1; int cur=0; while(cur <= r){ if(nums[cur]==0){ swap(nums[cur], nums[l]); l++; cur++; } else if(nums[cur] == 2){ swap(nums[cur],nums[r]); r--; } else cur++; } } };

     

    Processed: 0.014, SQL: 8