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

力扣算法Hot100——75. 颜色分类

在这里插入图片描述

解法1: 当然可以冒泡排序,时间复杂度O( n 2 n^2 n2)

解法2:单指针

循环两次,第一次循环将所有的 0 交换到前面;
第二次循环将所有的 1 交换到 0 的后面

class Solution {
    public void sortColorsBySinglePointer(int[] nums) {
        int zeroCnt = 0, p = 0;
        for (int i = 0; i < nums.length ; i++) {
            if (nums[i] == 0) {
                p = nums[zeroCnt];
                nums[zeroCnt] = 0;             
                nums[i] = p;
                zeroCnt++;
            }
        }
        // 继续沿着zeroCnt的位置放 1
        for (int i = 0; i < nums.length ; i++) {
            if (nums[i] == 1) {
                p = nums[zeroCnt];
                nums[zeroCnt] = 1;
                nums[i] = p;
                zeroCnt++;
            }
        }
    }
}

解法3:双指针

使用一次循环,过程中使用两个指针,将所有的 0 放前面,所有的 2 放后面
或者将所有的 0 放前面,所有的 1 放 0 后面

http://www.dtcms.com/a/77453.html

相关文章:

  • GaussDB 资源管理指南:冻结、解冻、释放与生命周期控制
  • Node.js 中使用 RabbitMQ
  • 【Golang】go如何通过atomic原子操作来确保数据一致性
  • AFFiNE:下一代开源全能知识库工具,重新定义协作与创作
  • 深入理解JVM类加载机制:从原理到实践
  • 拓扑排序——117. 软件构建
  • 持续升级的电子实验记录本系统,更加好用、安全
  • 数据操作 + 数据预处理
  • JavaScript中的闭包:解锁函数的神秘力量
  • Linux--软硬链接、动静态库
  • Javascript 中事件环以及宏任务微任务详细介绍
  • VS2019 快捷键及各项功能汇总
  • 【GNN】0.环境配置
  • 【Pandas】pandas Index str
  • Quartus + VScode 实现模块化流水灯
  • 【Dive Into Stable Diffusion v3.5】1:开源项目正式发布——深入探索SDv3.5模型全参/LoRA/RLHF训练
  • DAPO:一个开源的大规模大型语言模型LLM强化学习系统
  • 案例驱动的 IT 团队管理:创新与突破之路: 第四章 危机应对:从风险预见到创新破局-4.1.1案例:某金融系统“重构生死战“
  • JAVA-多线程join()等待一个线程
  • 15 数据结构及算法应用
  • 【面试问题】Java 接口与抽象类的区别
  • python内置函数sorted
  • [解决] PDF转图片,中文乱码或显示方框的解决方案
  • CSS3 基础布局技术与响应式设计
  • JDK动态代理与CGLIB实现的区别?
  • 基于springboot的房屋租赁系统(008)
  • zabbix数据库溯源
  • 大语言模型的“细胞“:拆解语言模型的DNA——Token
  • P2786 英语1(eng1)- 英语作文
  • 生物医药行业百TB级数据同步的实战解决方案