leetcode 75. Sort Colors (排列颜色)

从“氛围编程“到“智能体工程“:AI编程范式的认知跃迁与工程实践 摘要: 2026年,ClaudeCode负责人鲍里斯·切尔尼提出用“智能体工程”(Agent Engineering)替代流行的“氛围编程”(Vibe Coding),认为后者过于主观,无法体现AI编程的系统化与工程化本质。智能体工程强调记忆系统、工具编排、任务分解、可观测性等核心技术,将AI编程从“玄学辅助”升级为可度量、可规模化的工程学科。本文通过对比术语差异、构建知识体系,并结合代码实例(如带记忆系统的代码生成Agent和可观测性系统),展示了智能体工程的实际应用。行业案例(如ClaudeCode的并 阅读详情

Given an array with n objects colored red, white or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white and blue.

Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.

Note: You are not suppose to use the library’s sort function for this problem.

Example:

Input: [2,0,2,1,1,0]
Output: [0,0,1,1,2,2]

用3个数字表示3种颜色,0,1,2分别代表红白蓝

让按0,1,2的顺序给数组排序

思路1:
count sort
因为数字种类少,所以记录下每种出现的次数,然后重新给数组赋值

简陋易懂版代码:

    public void sortColors(int[] nums) {
        if (nums == null || nums.length == 0) {
            return;
        }
        
        int count0 = 0;
        int count1 = 0;
        int n = nums.length;
        
        for(int i = 0; i < n; i++) {
            if(nums[i] == 0) {
                count0 ++;
            } else if(nums[i] == 1) {
                count1 ++;
            }
        }
        
        for(int i = 0; i < count0; i ++) {
            nums[i] = 0;
        }
        
        for(int i = count0; i < count0 + count1; i++) {
            nums[i] = 1;
        }
        
        for(int i = count0 + count1; i < n; i++) {
            nums[i] = 2;
        }
    }

精简版

    public void sortColors(int[] nums) {
        if (nums == null || nums.length == 0) {
            return;
        }
        
        int[] color = new int[3];
        int n = nums.length;
        
        for(int i = 0; i < n; i++) {
            color[nums[i]] ++;
        }
        
        for(int i = 0, cur = 0; i < 3; i++) {
            for(int j = 0; j < color[i]; j++) {
                nums[cur++] = i; 
            }
        }
    }

思路2:
交换法,遇到0向左交换,遇到2向右交换,遇到1 pass
定义双指针,red指针指向左边,交换一次右移一步,blue指针指向右边,交换一次左移一步

需要注意的是遍历数组的i 指针是和red同起点的,i 遇到2必然会交换到右边blue指向的地方,所以red指针只可能指向0或1,那么当i 在后面遇到0时和red处的值交换,只可能交换过来0或1,所以交换完后i直接走向下一步

但是i指向2,和blue交换时,可能交换过来的是0或2,这时下一步仍需要交换,所以和blue交换完时i 还要停留在原位置直到不是0或2为止

    public void sortColors(int[] nums) {
        if (nums == null || nums.length == 0) {
            return;
        }

        int n = nums.length;
        int red = 0;
        int blue = n - 1;
        int i = 0;
        
        //注意这里是<=,防止出现由2交换到0后blue--,导致没有交换完0直接退出的情况
        while(i <= blue) {
            if(nums[i] == 0) {
                //swap
                int tmp = nums[i];
                nums[i] = nums[red];
                nums[red] = tmp;
                i ++;
                red ++;
            } else if (nums[i] == 2) {
                //swap
                int tmp = nums[i];
                nums[i] = nums[blue];
                nums[blue] = tmp;
                blue --;
            } else {
                i ++;
            }
        }
    }
电商数据采集实战——多平台价格监控、比价分析与智能告警系统 在电商竞争日益激烈的今天,价格监控与比价分析已成为品牌商、渠道商和消费者的核心需求。对于品牌商而言,需要监控各渠道售价是否低于指导价(破价监控);对于消费者而言,希望在最佳时机以最低价购入心仪商品;对于数据分析师而言,价格波动数据是洞察市场趋势的金矿。然而,电商数据采集面临三大核心挑战:本文将基于 Python + Scrapy + Playwright + Redis + ClickHouse 技术栈,构建一套完整的电商价格监控与比价系统。架构分层说明:电商平台的反爬手段层出不穷,采集系统必须具备多层次的 阅读详情

相关推荐

vba 修改下拉列表_Excel联想式下拉菜单制作教程II

?点击关注Excel表哥公众号上期我们分享了Excel联想式下拉菜单制作教程,可以简化大家在下拉菜单过长时的数据录入工作。文章末尾给大家提出了一个问题:为什么下拉列表数据源需要先排序?今天我们继续分享一个不用对数据源排序也能实现的下拉列表制作方法。先看最终的效果动图:今日分享难度指数:★★★★☆01创建辅助列在需要设置下拉列表的工作表中创建一列辅助列,如下图所示:在辅助列F3单元格输入下...

weixin_39593718的博客 1576

特殊数组的特征值-c语言快速排序

特殊数组的特征值-c语言快速排序 给你一个非负整数数组 nums 。如果存在一个数 x ,使得 nums 中恰好有 x 个元素 大于或者等于 x ,那么就称 nums 是一个 特殊数组 ,而 x 是该数组的 特征值 。 注意: x 不必 是 nums 的中的元素。 如果数组 nums 是一个 特殊数组 ,请返回它的特征值 x 。否则,返回 -1 。可以证明的是,如果 nums 是特殊数组,那么其特征值 x 是 唯一的 。 示例 1: 输入:nums = [3,5] 输出:2 解释:有 2 个元素(3 和 5

weixin_43327597的博客 377

Diebold-Mariano检验

给定两个预测的预测结果,我们希望比较他们的预测结果,以用于预测模型精度的比较。 Diebold-Mariano检验本质是一个t检验,用于检验替代预测的两个损失序列的平均值是否相等。即,它是一系列损失差的零均值的t检验。在存在自相关的情况下,它使用损失差分时间序列标准差的自相关一致性估计。 注意,在使用DM检验式时,假设损失序列是平稳的。 另外,DM检验在小样本数据时往往会拒绝零假设。对于小样本数据,推荐Harvey, Leybourne and Newbold (HLN)检验【1】; 参考文献 【1】htt

weixin_43948357的博客 6565

【Leetcode】75. 颜色分类(Sort Colors)

一、题目 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 二、示例 示例 1: 输入:nums = [2,0,2,1,1,0] 输出:[0,0,1,1,2,2] 示例 2: 输入:nums = [2,0,1] 输出:[0,1,2] 示例 3: 输入:nums = [0] 输出:[0] 示例 4: 输入:nums = [1] 输出:[1] 提示: n == n

Xiao_Spring的博客 486

仿真每日一练 | 有限元模态分析详解

结构的振动一直是工业领域产品分析的重点,在振动的仿真分析中,模态分析是其最基本的分析类型,通过研究结构的固有频率和振型对产品的设计提供指导。2.2、在interaction模块,通过special->Spring,在各点之间分别创建弹簧单元,弹簧刚度为1000。2.1、在interaction模块,创建两个RP点,与两侧RP点各间隔100大小,如图3所示;其中M、K、C均为n*n的矩阵,s、x、v为n*1的矢量,n为系统自由度数量。3、在Assembly模块创建装配体,两点之间的距离为100,如图2所示;

ansysxuexizhe的博客 1654

[leetcode]75. Sort Colors

leetcode 75. sort colors 三元素数组排序

掠雪墨影的随记 543

TransUnet官方代码训练自己数据集(彩色RGB3通道图像的分割)

官方代码:https://github.com/Beckschen/TransUNet 目的:训练5个类别的汽车部件分割任务(测试在另一篇博客中) 实现效果: 1. github下载代码,并解压。 项目里的文件可能跟你下载的不一样,不急后面会讲到! 2. 配置数据集(尽最大努力还原官方数据集的格式)。 通常自己手上的数据集分images和labels文件夹,分别存放着原始图像和对应的mask图像,如下图所示; mask图像中的像素有0,1,2,3,4 分别代表背景,车身,轮子,车灯,窗户,一共五个

qq_37652891的博客 5万+

LeetCode:75. Sort Colors

LeetCode:75. Sort Colors Given an array with n objects colored red, white or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white and blue. ...

Wisimer 291

pgpool-II安装部署

文章介绍了pgpool-II的核心功能、架构组成以及实际部署的关键配置步骤

weixin_41690116的博客 1422

ColorOS13系统账户锁与密码锁破解全指南:从恢复模式到激活绕过

本文针对ColorOS13系统用户,详细解析了忘记锁屏密码(数字/图案锁)和遭遇OPPO账户锁(激活锁)的合法解决方案。核心是通过官方恢复模式进行格式化操作清除锁屏密码,并强调账户锁需通过密码找回或官方售后等正规途径解除。文章旨在帮助设备合法所有者恢复使用权,并提供了安全操作指南与数据备份建议。

weixin_28304023的博客 961

【LeetCode】75. Sort Colors(颜色排序)-C++实现的两种方法及超详细图解

问题描述: 一、第一种解题方法-计数排序法  (1)分别统计0,1,2的元素个数 int count[3] = {0}; // 存放0, 1, 2三个元素的频率 for(int i = 0 ; i &lt; nums.size() ; i ++){ assert(nums[i] &gt;= 0 &amp;&amp; nu...

渲染引擎开发 1856

基于粒子群优化的PID控制在药液流量控制系统中的应用

本文提出了一种基于粒子群优化(PSO)的PID控制算法,用于药液流量控制系统。系统采用C37控制器和Codesys 2.3编程环境实现,通过传感器实时监测流量、压力和车速,并控制水泵占空比和电动球阀开度来精确调节药液流量。硬件配置包括FT-2000流量传感器、PT-3000压力传感器和MV-500电动球阀等。控制算法将PSO与PID结合,使用ITAE指标优化PID参数,在Codesys中实现了包含PSO优化循环、PID控制等功能的程序模块。该系统通过分层控制策略和智能优化算法,提高了药液流量控制的精度和响应

AI的内部世界的博客 250

【Leetcode】75. 排序颜色(Sort Colors)

Leetcode - 75 Sort Colors (Medium) 题目描述:0、1、2 分别代表三种颜色,给定由这三个数组组成的数组,将数组内的元素按照 0、1、2 的顺序排列。 Input: [2,0,2,1,1,0] Output: [0,0,1,1,2,2] public void sortColors(int[] nums) { int zero = -1, one = 0,...

厉兵秣码 394

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

LeetCode 75. Sort Colors

LeetCode 75. Sort Colors Description Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and

Vimer.Bai的博客 241

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【python3】leetcode 75. Sort Colors (Medium)

75. Sort Colors (Medium) Given an array with n objects colored red, white or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white and blue...

momottyy的专栏 192

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

每天一算:Sort Colors

leetcode上第75号问题:Sort Colors 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 示例: 输入: [2,0,2,1,1,0] 输出: [0,0,1,1,...

weixin_34326429的博客 110

Leetcode 75 Sort Colors

Leetcode 75 Sort Colors Given an array with n objects colored red, white or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white and blue. H...

herosunly的博客 1万+

Leetcode 75.颜色分类 Sort Colors

Leetcode 75.颜色分类 Sort Colors题目描述(中等)示例题解解题思路:备注 题目描述(中等) 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 进阶: 一个直观的解决方案是使用计数...

wefang的博客 343

leetcode75. 颜色分类

颜色分类

热爱C++和golang的学生 1407

LeetCode 75. Sort Colors 题解

本题是排序算法的经典应用问题,主要考察对三指针排序方法的理解和使用。通过使用三个指针,我们可以高效地对包含0、1、2的数组进行排序。三指针的核心思想是:使用三个指针分别指向0的右边界、2的左边界和当前处理的元素,根据当前元素的值进行相应的交换和指针移动。这种方法不仅适用于颜色排序问题,还可以应用于许多其他需要对有限种类元素进行排序的问题。掌握三指针的使用,对于解决这类问题非常重要。

cannonjinx的博客 4285

Leetcode 75.颜色分类(Sort Colors)

Leetcode 75.颜色分类 1 题目描述(Leetcode题目链接)   给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。 输入: [2,0,2,1,1,0] 输出: [0,0,1,1,2,2] 进...

qq_39378221的博客 299

leetcode75. Sort Colors(颜色排序)

题目要求 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 解题思路 本道题,我们使用三路快排三路快排,三个指针(分别记录:当前元素i,0的位置start,2的位置end)协同完成排序任务,我们这里...

爱喝舒化奶的博客 414

【LeetCode】 75. Sort Colors 颜色分类(Medium)(JAVA)

【LeetCode】 75. Sort Colors 颜色分类(Medium)(JAVA) 题目地址: https://leetcode.com/problems/sort-colors/ 题目描述: Given an array with n objects colored red, white or blue, sort them in-place so that objects of the...

qq_16927853的博客 228

[Leetcode] 75. Sort Colors 双指针

75.Sort Colors (题目链接) Medium Given an array withnobjects colored red, white or blue, sort themin-placeso that objects of the same color are adjacent, with the colors in the order red, white and blue. Here, we will use the integers 0, 1, and 2 to re...

热爱编程,热爱技术 207

Leetcode 75. Sort Colors

Leetcode 75. Sort Colors Given an array with n objects colored red, white or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white and blue.H...

fengran_mark的博客 735
上一篇: catboost测试,ROC
下一篇: 详解HMM模型 及 实现(之一:problem1)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值