每日一题(leetcode75):颜色分类-双指针

采用双指针法,p0维护数字0,p1维护数字1。遇到1时,交换并且p1加1,遇到0时,交换并观察0的指针是不是小于1的指针,如果小于,那么之前0指针指向的数据1会被交换出去,所以要进一步进行交换。

注:两个指针都是在数据0或者数据1末尾的后一个位置。

class Solution {
public:
    void sortColors(vector<int>& nums) {
        int p0=0;
        int p1=0;
        int len=nums.size();
        for(int i=0;i<len;i++)
        {
            if(nums[i]==1)
            {
                swap(nums[i],nums[p1]);
                p1++;
            }
            else if(nums[i]==0)
            {
                swap(nums[i],nums[p0]);
                if(p0<p1)
                {
                    swap(nums[i],nums[p1]);
                    
                }
                p1++;
                p0++;
            }
        }

    }
};

相关推荐

  1. LeetCode-75. 颜色分类【数组 指针 排序】

    2024-04-04 13:46:01       35 阅读
  2. LeetCode 75 颜色分类

    2024-04-04 13:46:01       40 阅读
  3. Leetcode 75. 颜色分类

    2024-04-04 13:46:01       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-04 13:46:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-04 13:46:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-04 13:46:01       87 阅读
  4. Python语言-面向对象

    2024-04-04 13:46:01       96 阅读

热门阅读

  1. Ubuntu pycharm配置Conda环境

    2024-04-04 13:46:01       33 阅读
  2. mongodb 基础查询使用

    2024-04-04 13:46:01       36 阅读
  3. String

    2024-04-04 13:46:01       39 阅读
  4. 再说机器学习

    2024-04-04 13:46:01       38 阅读
  5. 神经网络设计:(block)块视角和(layer)层视角

    2024-04-04 13:46:01       43 阅读
  6. Spring AI使用向量数据库实现检索AI对话

    2024-04-04 13:46:01       34 阅读
  7. ChatGPT智能辅助:让学术论文写作更从容自如

    2024-04-04 13:46:01       43 阅读
  8. volatile 变量和 atomic 变量有什么不同

    2024-04-04 13:46:01       43 阅读
  9. 深度学习中的注意力模块的添加

    2024-04-04 13:46:01       29 阅读