leetcode-75. 颜色分类]
-
0区最右边为less指针,开始在0的左边 -1
2区最左边为more指针,开始在数组最后一个数的右边 nums.length
index为指针,当index没有超过more区的时候可以进行循环
-
nums[index] == 1,跳过index++
-
nums[index] == 0,就把0区下一位和当前index的数交换,index++
-
nums[index] ==2,就把2区的前一位和当前的index交换,
-
public void sortColors(int[] nums) { int less = -1; int more = nums.length; int index = 0; while(index < more){ if(nums[index] == 1){ index++; }else if(nums[index] == 0){ swap(nums, index++, ++less); }else{ swap(nums, index, --more); } } } public void swap(int[] nums, int i, int j) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; }
分类:
算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了