LEETCODE 75. 颜色分类

在这里插入图片描述

class Solution {
public:void sortColors(vector<int>& nums) {//先定0int i,j;i=0;j=0;int n=nums.size();while(j<n){if(nums[j]==0){int tmp=nums[j];nums[j]=nums[i];nums[i]=tmp;j+=1;i+=1;}else{j+=1;}}//对[i,n]处理,定1int i1=i;j=i1;while(j<n){if(nums[j]==1){int tmp=nums[j];nums[j]=nums[i1];nums[i1]=tmp;j+=1;i1+=1;}else{j+=1;}}}
};

在这里插入图片描述
三个动的变量:
第一时间想到控制变量

学习到的方法,分三类:排序 指针 赋值
我的是指针,但赋值太妙了


class Solution {
public:void sortColors(vector<int>& nums) {//学习 - 关注赋值 int n0,n1;n0=0;n1=0;for(int i=0;i<nums.size();i++){int num=nums[i];nums[i]=2;if(num<2){nums[n1++]=1;}if(num<1){nums[n0++]=0;}}}
};

隐藏保证

  1. n1 n0不会超过i
  2. 但其实说赋值,还是关注指针

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/669451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全新 鸿蒙系统

一&#xff0c; 开发框架 基础 二&#xff0c; 官网地址 文档开发&#xff1a;华为HarmonyOS智能终端操作系统官网 | 应用设备分布式开发者生态 三&#xff0c;基础了解 鸿蒙系统是基于 js 和 ts 衍生出来的一个东西 要学 arkts 就要学习 js 和 ts 语法 四&#xff0c…

计算机毕业设计 | SSM 校园线上订餐系统(附源码)

1&#xff0c; 概述 1.1 项目背景 传统的外卖方式就是打电话预定&#xff0c;然而&#xff0c;在这种方式中&#xff0c;顾客往往通过餐厅散发的传单来获取餐厅的相关信息&#xff0c;通过电话来传达自己的订单信息&#xff0c;餐厅方面通过电话接受订单后&#xff0c;一般通…

哪种安全数据交换系统,可以满足信创环境要求?

安全数据交换系统是一种专门设计用于在不同网络环境之间安全传输数据的技术解决方案。这类系统确保数据在传输过程中的完整性、机密性和可用性&#xff0c;同时遵守相关的数据保护法规和行业标准。 使用安全数据交换系统的原因主要包括以下几点&#xff1a; 1、数据保护&#…

手写mybatis

手写mybatis mybatis仓库地址点击文字即可跳转 package com.mybatis.factory;import com.mybatis.mapper.ParameterMapping; import com.mybatis.retention.Selcet; import com.mybatis.token.GenericTokenParser; import com.mybatis.token.ParameterMappingTokenHandler; im…

#vu3# element plus表格的序号字段

在表格中添加序号字段&#xff0c;可以使用以下几种方式来实现 1. 利用索引 在<el-table>组件的<el-table-column>中使用插槽来显示序号。示例&#xff1a; <el-table :data"tableData"><el-table-column label"序号" type"i…

Jmeter接口自动化测试 —— Jmeter断言之Json断言

json断言可以让我们很快的定位到响应数据中的某一字段&#xff0c;当然前提是响应数据是json格式的&#xff0c;所以如果响应数据为json格式的话&#xff0c;使用json断言还是相当方便的。 还是以之前的接口举例 Url: https://data.cma.cn/weatherGis/web/weather/weatherFcst…

linux中的mtime,ctime,atime

目录 结论 文件 touch新文件 调整文件内容 echo直接修改 vi修改 修改文件属性 调整归属 调整权限 读取文件 目录 增加文件 调整目录下文件属性 访问目录下文件 删除文件 结论 mtime&#xff1a;文件内容的修改时间&#xff08;不含权限、属组修改&#xff09; …

springboot在线文档的集成方式

为了使用Swagger 3&#xff0c;您需要进行以下步骤来将其集成到您的项目中&#xff1a; 添加Swagger依赖项&#xff1a;在您的项目的构建文件中&#xff0c;例如pom.xml&#xff08;如果您的项目是基于Maven&#xff09;&#xff0c;添加Swagger库的依赖项。您可以在Maven中添…

实习记录——第十三天

明天要回家了&#xff0c;今天啥也不想干&#xff0c;看了一集小迪的课&#xff0c;日报写的堂而皇之&#xff0c;我都害怕&#xff0c;中午忘记吃饭了&#xff0c;吃了一点儿饼干&#xff0c;结果下班回校的时候&#xff0c;感觉手有些颤抖&#xff0c;我在网上看好了吃的地方…

mobi, azw, azw3, epub格式有什么区别

mobi, azw, azw3, epub格式有什么区别 对复杂排版的支持上是azw3好。 对使用方便来说是mobi好&#xff0c;因为可以邮件推送。 刚接触Kindle的小伙伴经常会被mobi、azw、azw3、epub等常见的几个格式搞的很凌乱&#xff0c;它们都有哪些区别呢&#xff1f;又各有什么优缺点呢&am…

1 引论

1 引论 操作系统&#xff08;OS&#xff09; -管理计算机系统资源、控制程序执行、改善人机界面、提供各种服务&#xff0c;并合理组织计算机工作流程和为用户方便有效地使用计算机&#xff0c;提供良好运行环境的一种系统软件 操作系统的目标 方便性 2. 有效性 3. 可扩充性 4…

C++泛编程(4)

类模板高级&#xff08;1&#xff09; 1.类模板具体化部分具体化完全具体化 2.类模板与继承 1.类模板具体化 有了函数模板具体化的基础&#xff0c;学习类模板的具体化很简单。类模板具体化有两种方式&#xff0c;分别为部分具体化和完全具体化。假如有类模板&#xff1a; te…

户用光伏电站设计优化方案:为行业打造示范标杆

不可再生能源的日益消耗促使了大家对新能源的使用和推广&#xff0c;光伏发电已经成为国家和企业大力推崇的技术。其中&#xff0c;户用光伏发电是重要组成部分&#xff0c;有非常大的市场发展空间。然而&#xff0c;如何优化设计&#xff0c;提高效率&#xff0c;降低成本&…

蓝桥杯备战(AcWing算法基础课)-高精度-减-高精度

目录 前言 1 题目描述 2 分析 2.1 第一步 2.2 第二步 3 代码 前言 详细的代码里面有自己的理解注释 1 题目描述 给定两个正整数&#xff08;不含前导 00&#xff09;&#xff0c;计算它们的差&#xff0c;计算结果可能为负数。 输入格式 共两行&#xff0c;每行包含一…

【Iceberg学习二】Branch和Tag在Iceberg中的应用

Iceberg 表元数据保持一个快照日志&#xff0c;记录了对表所做的更改。快照在 Iceberg 中至关重要&#xff0c;因为它们是读者隔离和时间旅行查询的基础。为了控制元数据大小和存储成本&#xff0c;Iceberg 提供了快照生命周期管理程序&#xff0c;如 expire_snapshots&#xf…

函数调用栈是什么

今天在力扣leetbook上看《图解算法数据结构》中的空间复杂度这一小节&#xff0c;看到如下这句话&#xff1a; “程序调用函数是基于栈实现的&#xff0c;函数在调用期间&#xff0c;占用常量大小的栈帧空间&#xff0c;直至返回后释放。” 这句话的意思是&#xff0c;在程序中…

2.3作业

作业要求&#xff1a; 程序代码&#xff1a; #include<stdlib.h> #include<string.h> #include<stdio.h> typedef struct node //定义链表节点结构体&#xff1a;数据域、指针域 {int data;struct node *next; }*linklist;linklist create_node()//创建新节…

C++类和对象入门(三)

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 前言 在c中&#xff0c;类型分为两类&#xff0c;一类是内置类型&#xff0c;另一类是自定义类型。 1.内置类型&#xf…

Linux内存管理:(十二)Linux 5.0内核新增的反碎片优化

文章说明&#xff1a; Linux内核版本&#xff1a;5.0 架构&#xff1a;ARM64 参考资料及图片来源&#xff1a;《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址&#xff1a; zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 外碎片化发生时&#xff0c;页面分配…

Python基础知识:Python流程控制语句

流程控制就是控制程序如何执行的方法&#xff0c;适用于任何一门编程语言&#xff0c;其作用在于&#xff0c;可以根据用户的需求决定程序执行的顺序。计算机在运行程序时&#xff0c;有3种执行方法&#xff0c;第一种是顺序执行&#xff0c;自上而下顺序执行所有的语句&#x…