当前位置: 首页 > news >正文

【Hot 100 刷题计划】 LeetCode 75. 颜色分类 | C++ 两次遍历双指针法

LeetCode 75. 颜色分类

📌 题目描述

题目级别:中等

给定一个包含红色、白色和蓝色、共n个元素的数组nums原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。
我们使用整数012分别表示红色、白色和蓝色。
必须在不使用库内置的sort函数的情况下解决这个问题。

  • 示例 1:
    输入:nums = [2,0,2,1,1,0]
    输出:[0,0,1,1,2,2]

💡 破题思路:两次 Partition 划分

这道题最直观的解法,就是借用快速排序(Quick Sort)中划分区间(Partition)的思想。

因为总共只有三种数字,我们可以分两步走:

  1. 第一趟扫描:准备左右两个指针。左指针找非0,右指针找0,然后把它们互换。这一趟结束后,所有的0都被推到了数组的最前面
  2. 第二趟扫描:再次初始化左右指针。左指针找非2,右指针找2,然后把它们互换。这一趟结束后,所有的2都被推到了数组的最后面

经过这两步,头部的0和尾部的2都归位了,剩下的1自然就被挤在了数组的中间,排序完成!


💻 C++ 代码实现 (两次遍历法)

classSolution{public:voidsortColors(vector<int>&nums){intl=0,r=nums.size()-1;// 第一趟:把所有的 0 换到最左边while(l<r){while(l<r&&nums[l]==0)l++;while(l<r&&nums[r]!=0)r--;if(l<r){swap(nums[l],nums[r]);l++,r--;}}// 第二趟:把所有的 2 换到最右边l=0,r=nums.size()-1;while(l<r){// 注意这里:左指针只要不是 2 就往右走,不用管 0 和 1while(l<r&&nums[l]!=2)l++;while(l<r&&nums[r]==2)r--;if(l<r){swap(nums[l],nums[r]);l++,r--;}}}};
http://www.jsqmd.com/news/631033/

相关文章:

  • Windows Server 配置与管理——第7章:配置DNS服务器
  • 打造沉浸式智能AI问答助手:Vue + UniApp 全端实战(支持 Markdown/公式/多模态交互)竿
  • YOLO26涨点改进| TMM 2026顶刊 |独家创新首发、特征融合改进篇| 引入FDFAM频域特征聚合模块,通过在频域中建模关系,实现更高效融合,助力小目标检测,图像分割,多模态目标检测有效涨点
  • ANSYS Workbench新手避坑:用网格自适应搞定超弹性橡胶大变形仿真(附详细设置截图)
  • ESP居然能当 DNS 服务器用?内含NCSI欺骗和DNS劫持实现端
  • Maomi.In | .NET 全能多语言解决方案卓
  • Claude Code泄露事件揭示的技术内核与设计哲学
  • Win11共享打印机0x00000709错误:从凭证到注册表的双路径修复指南
  • 【Hot 100 刷题计划】 LeetCode 136. 只出现一次的数字 | C++ 哈希表异或基础解法
  • 【技术解析】BERT:双向Transformer预训练如何革新语言理解
  • 如何处理SQL存储过程存储过程循环陷阱_优化逻辑结构
  • [RK3588]调试串口波特率优化实战:从1.5M到115200的完整指南
  • 2026最权威的降重复率网站实测分析
  • 【Hot 100 刷题计划】 LeetCode 169. 多数元素 | C++ 哈希表基础解法
  • 免费开源游戏串流终极方案:Sunshine自托管服务器完整指南
  • 告别重复劳动!用Layout2allegro批量转换PCB封装库的保姆级教程
  • 实测Stable Diffusion v1.5 Archive:单卡A10 24G显存稳定运行,生成速度超快
  • 5分钟掌握LOL身份伪装:LeaguePrank终极定制指南
  • 别再折腾原生告警了!用Alertmanager+Grafana打造更强大的飞书通知(保姆级配置)
  • 从电路到布局:深入剖析耳机串扰(Crosstalk)的成因与优化
  • TMM框架自证闭环逻辑:从公理奠基到全域递归的科学元规则
  • 一款基于 .NET 开源、跨平台应用程序自动升级组件悦
  • QuestaSim 2020.1配置Xilinx仿真库全攻略(附常见错误解决方案)
  • 2026年4月香氛品牌推荐,香薰/减压香薰/豪车香氛/油性香氛精油/瑜伽香薰/挂式香薰,香氛ODM供应厂家口碑推荐 - 品牌推荐师
  • 告别“玄学”调试:深入理解ARM Semihosting的DCC模式与性能陷阱
  • Jetson AGX Orin 新手避坑:解决‘找不到nvidia-jetpack包’的完整修复指南
  • G3810,TS3380,G1800,G2810,G4810,MG3680,IX6780,MP288,TS8380打印机废墨垫清零软件,错误代码5B00,P07,E08,1700,5b04,亲测有效。
  • YOLO-Master 与 YOLO 开始白
  • FastAPI项目半夜报警吵醒你?聊聊告警这事儿怎么搞!囤
  • Carsim/Trucksim预瞄点设置与Simulink联合仿真的变量导出实战