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

99 颜色分类

颜色分类

    • 题解1 双指针
    • 题解2 单指针

给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。

我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色

必须在不使用库内置的 sort 函数的情况下解决这个问题。

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

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

提示:

  • n == nums.length
  • 1 <= n <= 300
  • nums[i] 为 0、1 或 2

题解1 双指针

class Solution {
public:void sortColors(vector<int>& nums) {const int s = nums.size();// 0对应的位置,1对应的位置int p0, p1;p0 = p1 = 0;for(int i = 0; i < s; i++){if(1 == nums[i]){swap(nums[i], nums[p1]);p1 ++;}else if(0 == nums[i]){swap(nums[i], nums[p0]);// 1比0多,说明p0位置是1if(p0 < p1){// 把1换回来swap(nums[i], nums[p1]);}// 多了个0,p1的位置也往后指了p0 ++;p1 ++;}      }return;}
};

在这里插入图片描述

题解2 单指针

class Solution {
public:void sortColors(vector<int>& nums) {const int s = nums.size();// 0对应的位置,1对应的位置int p;p = 0;// 先换0for(int i = 0; i < s; i++){if(0 == nums[i])swap(nums[p++], nums[i]);}// 再换1for(int i = p; i < s; i++){if(1 == nums[i])swap(nums[p++], nums[i]);}return;}
};

在这里插入图片描述

相关文章:

99 颜色分类

颜色分类 题解1 双指针题解2 单指针 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在…...

计算机视觉与深度学习 | 基于GPS/BDS多星座加权图因子优化的行人智能手机导航

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 基于GPS/BDS多星座加权图因子优化的行人智能手机导航 1、引言2、相关工…...

低代码平台,业务开发的“银弹”

目录 一、为什么需要低代码平台 二、低代码平台的搭建能力 三、低代码其他能力 四、写在最后 随着互联网和信息技术的快速发展&#xff0c;各行各业都在积极拥抱数字化转型。在这个过程中&#xff0c;软件开发成为企业实现数字化转型的关键环节。然而&#xff0c;传统的软件开发…...

补偿 FIR 滤波器引入的延迟

补偿 FIR 滤波器引入的延迟 对信号进行滤波会引入延迟。这意味着相对于输入&#xff0c;输出信号在时间上有所偏移。此示例向您说明如何抵消这种影响。 有限冲激响应滤波器经常将所有频率分量延迟相同的时间量。这样&#xff0c;我们就很容易通过对信号进行时移处理来针对延迟…...

图数据库Neo4j详解

文章目录 第一章 图和Neo4j1.1 图数据库概念1.1.1 图论起源1.1.2 节点-关系及图1.1.3 图数据库1.1.4 图数据库分类1.1.4 图数据库应用场景1.1.5 与关系型数据库对比1.1.6 图数据库优势 1.2 Neo4j介绍1.2.1 Neo4j是什么1.2.2 Neo4j特点1.2.3 Neo4j的优势1.2.4 Neo4j的限制1.2.5 …...

系列一、Shiro概述

一、概述 Shiro是一款主流的Java安全框架&#xff0c;不依赖任何容器&#xff0c;可以运行在JavaSE 和 JavaEE项目中&#xff0c;它的主要作用是对访问系统的用户进行身份认证、授权、会话管理、加密等操作。 一句话&#xff1a;Shiro是一个用来解决安全管理的系统框架&#x…...

SpringCloudAlibaba——Sentinel

Sentinel也就是我们之前的Hystrix&#xff0c;而且比Hystrix功能更加的强大。Sentinel是分布式系统的流量防卫兵&#xff0c;以流量为切入点&#xff0c;从流量控制、流量路由、熔断降级等多个维度保护服务的稳定性。 Sentinel采用的是懒加载&#xff0c;这个接口被访问一次&a…...

Java编写简易rabbitmq生产者与消费者

一、前言 开发时经常与其它系统用rabbitmq对接&#xff0c;当需要自测时&#xff0c;还是自己写rabbitmq生产者、消费者自测方便些。 下面总结下不用框架、使用java编写简易rabbitmq的方法。 二、代码 1.导入jar包 (1)如果是maven&#xff0c;那就用 <dependency>&…...

3.0.3版vsftpd所支持的FTP命令

2023年11月9日&#xff0c;周四下午 ABOR&#xff1a;中止当前的数据连接。ACCT&#xff1a;提供用户帐户信息&#xff0c;通常用于特定的站点访问控制。ALLO&#xff1a;为服务器上的文件分配存储空间。APPE&#xff1a;将数据添加到现有的远程文件中。CDUP&#xff1a;将当前…...

OTA包添加自定义内容

起因 新开一条线&#xff0c;需要上传的OTA包里加点内容&#xff0c;好让后台校验它是否是当前这条线(短期最小改动)。 开整 之前看过ota包结构&#xff0c;整包和差分包里都有一个payload_properties.txt文件&#xff0c;所以最简单的就是给这个txt文件里追加点自定义内容&…...

Luatos Air700 改变BL0942串口波特率

LuatOs 改变模块串口波特率思路参照 luatos 改变AIR530串口波特率 BL0942默认串口波特率可以通过SCLK_BPS引脚接3.3V电源设置到9600bps 但如果调整到38400bps需要修改0x19寄存器 bl0942 v1.06版的特殊寄存器说明&#xff0c;注意早期版本特殊寄存器说明存在错误 完整代码 mai…...

不可忽视的国外服务器地址IP选择指南

​  在如今互联网高速发展的时代&#xff0c;海外服务器扮演着重要的角色。选择合适的国外服务器IP地址却是一项复杂而又关键的任务。本文将为您介绍一些不可忽视的国外服务器地址IP选择指南。 私有IP地址&#xff1a; 私有IP地址是指在局域网内使用的IP地址&#xff0c;用于…...

C语言 预处理详解

目录 1.预定义符号 2.#define 2.1#define 定义标识符 2.2#define 定义宏 2.3#define 替换规则 2.4#和## 2.4.1# 的作用 2.4.2## 的作用 2.5 带有副作用的宏参数 2.6宏和函数的对比 对比 **2.7内联函数 2.8命名约定 3.#undef **4.命令行定义 5.条件编译 常…...

c++ async 使用详解,创建异步任务的多种方法

c async 使用详解 std::async 头文件 #include <future>。 函数原型&#xff1a; template<class Function, class... Args> std::future<std::invoke_result_t<std::decay_t<Function>,std::decay_t<Args>...>>async(std::launch polic…...

万物皆数——用matlab求解二阶微分方程

一、背景 毕达哥拉斯的“万物皆数”哲学观点表达了一个理念&#xff0c;即宇宙万物都可以通过数学语言来描述&#xff0c;数是万物的本原。 勾股定理就是毕达哥拉斯提出&#xff0c;因此在西方勾股定理也被叫做毕达哥拉斯定理。 工科类的专业&#xff0c;越到后面越感觉到数学…...

jmeter接口自动化部署jenkins教程

首先&#xff0c;保证本地安装并部署了jenkins&#xff0c;jmeter&#xff0c;xslproc 我搭建的自动化测试框架是jmeterjenkinsxslproc ---注意&#xff1a;原理是&#xff0c;jmeter自生成的报告jtl文件&#xff0c;通过xslproc工具&#xff0c;再结合jmeter自带的模板修改&…...

前端js实现将数组对象组装成自己需要的属性,或者去掉对象中不必要的属性

前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 需求&#xff1a;前端js实现将数组对象组装成自己需要的属性&#xff0c;或者前端js实现去掉对象中不必要的属性 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、示例数组对象…...

MeterSphere 任意文件读取漏洞(CVE-2023-25814)

MeterSphere 任意文件读取漏洞&#xff08;CVE-2023-25814&#xff09; 免责声明漏洞描述漏洞影响漏洞危害网络测绘Fofa: title"MeterSphere" 漏洞复现1. 构造poc2. 发送数据包3. 查看文件 免责声明 仅用于技术交流,目的是向相关安全人员展示漏洞利用方式,以便更好地…...

设计模式-01-单例设计模式

经典的设计模式有23种&#xff0c;但是常用的设计模式一般情况下不会到一半&#xff0c;我们就针对一些常用的设计模式进行一些详细的讲解和分析&#xff0c;方便大家更加容易理解和使用设计模式。 1-为什么要使用单例 单例设计模式&#xff08;Singleton Design Pattern&…...

霍尔电流传感器如何进行可靠性测试?主要应用在哪些领域?

霍尔电流传感器广泛应用于航空航天、电源监测、飞行器状态监测、变速驱动设备、焊接设备供电电源、新能源汽车蓄电池管理系统等领域&#xff0c;在电流检测领域中有着重要地位和实用价值&#xff0c;在电驱系统中被称为新能源汽车的动力“心脏”。因此&#xff0c;霍尔电流传感…...

Citra 3DS模拟器完整教程:如何在PC上免费畅玩任天堂3DS游戏

Citra 3DS模拟器完整教程&#xff1a;如何在PC上免费畅玩任天堂3DS游戏 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/gh_mirrors/cit/citra 想要在个人电脑上重温《精灵宝可梦》、《塞尔达传说》等任天堂3DS独占大作吗&#xff1f;Ci…...

如何测试FSFO观察者进程的自动切换_模拟主库断网与Observer心跳超时

FSFO Observer心跳超时不会触发切换&#xff0c;真正执行切换的是Data Guard Broker&#xff1b;Observer失联仅导致状态变为NOT RUNNING或UNKNOWN&#xff0c;Broker仍可依据主库不可达及阈值条件发起failover。FSFO Observer 进程是否在心跳超时后触发切换&#xff1f;fsfo&a…...

如何3步打造电影级Minecraft画面:Revelation光影包完整配置指南

如何3步打造电影级Minecraft画面&#xff1a;Revelation光影包完整配置指南 【免费下载链接】Revelation An explorative shaderpack for Minecraft: Java Edition 项目地址: https://gitcode.com/gh_mirrors/re/Revelation 你是否厌倦了Minecraft中单调的光影效果&…...

共享汽车功率管理器件选型实战:空间、效率与可靠性的平衡之道

在共享汽车朝着电动化、智能化与高利用率不断演进的今天&#xff0c;其内部的电子控制系统已不再是简单的功能单元&#xff0c;而是直接决定了车辆可用性、用户体验与运营成本的核心。一套设计精良的功率管理方案&#xff0c;是共享汽车实现稳定供电、智能控制与长久耐用寿命的…...

保姆级教程:用VS Code调试牛客网C语言百题(附BC33统计成绩单步调试实战)

用VS Code高效调试牛客网C语言百题的完整指南 在牛客网刷C语言百题时&#xff0c;你是否遇到过这样的情况&#xff1a;代码提交后报错&#xff0c;却无法直观地看到程序执行过程中变量的变化&#xff1f;本文将带你搭建一个高效的本地调试环境&#xff0c;让你能够像专业开发者…...

3大核心技巧解锁Office生产力:用Custom UI Editor重塑你的工作界面

3大核心技巧解锁Office生产力&#xff1a;用Custom UI Editor重塑你的工作界面 【免费下载链接】office-custom-ui-editor Standalone tool to edit custom UI part of Office open document file format 项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-edit…...

国产车灯改装品牌排行榜,我用了半年很满意

很多车主问我&#xff1a;“国产车灯改装品牌到底怎么选&#xff1f;”、“车灯不够亮怎么升级才不踩坑&#xff1f;”、“激光大灯什么牌子好&#xff0c;LED大灯和激光大灯怎么选&#xff1f;”——这些问题背后&#xff0c;折射出一个现实&#xff1a;市面上品牌太多&#x…...

Java开发者AI转型第八课!避开Token陷阱!Spring AI记忆裁剪源码解析与Token级防溢出核心技巧

大家好&#xff0c;我是直奔標杆&#xff0c;欢迎各位Java同仁来到《Spring AI 零基础到实战》专栏的第8节分享&#xff01;今天咱们继续深耕AI转型实战&#xff0c;一起破解生产环境中隐藏的坑点&#xff0c;共同成长、互相借鉴&#xff5e;在上一节《Java开发者AI转型第七课&…...

推理服务为什么用户都断开了 GPU 还在忙:从 cancel propagation 到幽灵解码清理的工程实战

&#x1f9e0; 用户都关页面了&#xff0c;为什么显卡还在持续发热 流式推理一旦进入生产&#xff0c;最让运维困惑的场景之一&#xff0c;就是前端早已超时、客户端连接也已经断开&#xff0c;GPU 利用率却没有立刻回落。很多团队会先怀疑 continuous batching 太激进&#xf…...

nli-MiniLM2-L6-H768开源可部署:MIT协议支持商用与二次开发

nli-MiniLM2-L6-H768开源可部署&#xff1a;MIT协议支持商用与二次开发 1. 项目概述 nli-MiniLM2-L6-H768是一款基于cross-encoder/nli-MiniLM2-L6-H768轻量级NLI模型开发的本地零样本文本分类工具。这款工具最大的特点是无需任何微调训练&#xff0c;只需输入文本和自定义标…...