
leetcode题解75-颜色分类
统计颜色数量:首先,我们需要统计数组中每种颜色的数量。这可以通过一次遍历来完成。 重写数组:根据统计的颜色数量,将数组重写为红色、白色、蓝色分别按顺序排列的形式。 统计颜色数量:首先遍历数组,统计每种颜色的出现次数(count0、count1、count2)。 重写数组:使用索引指针
发布日期:2025-04-05 06:21:30
浏览次数:9
分类:精选文章
本文共 1030 字,大约阅读时间需要 3 分钟。
要解决给定的问题,我们需要对数组进行原地排序,使得相同颜色的元素相邻,并按照红色(0)、白色(1)、蓝色(2)的顺序排列。以下是详细的步骤说明:
解题思路
这种方法时间复杂度为 O(n),其中 n 是数组的长度。因为我们只需要两次遍历(一次统计,一次重写)即可完成任务,因此效率很高。
代码实现
public class Solution { public void sortColors(int[] nums) { int count0 = 0, count1 = 0, count2 = 0; for (int num : nums) { if (num == 0) { count0++; } else if (num == 1) { count1++; } else { count2++; } } int index = 0; while (index < nums.length) { for (int i = 0; i < count0; i++) { nums[index++] = 0; } for (int i = 0; i < count1; i++) { nums[index++] = 1; } for (int i = 0; i < count2; i++) { nums[index++] = 2; } } }}
解释
index
来逐个填充数组。先将所有0填充进去,接着是1,然后是2。这样,相同颜色的元素就会相邻,并且顺序按照红色、白色、蓝色排列。发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年05月14日 22时14分22秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
leaflet加载接入天地图(leaflet篇.1)
2023-01-30
leaflet加载接入百度地图(leaflet篇.2)
2023-01-30
leaflet加载接入腾讯矢量、腾讯影像地图(leaflet篇.4)
2023-01-30
leaflet动态热力图分析(leaflet篇.16)
2023-01-30
leaflet动态热力图(大数据版)(leaflet篇.17)
2023-01-30
leaflet区域聚合点(点击后散开并进行合理定位)(leaflet篇.22)
2023-01-30
leaflet叠加geojson图层(leaflet篇.38)
2023-01-30
leaflet叠加geojson图层(挖洞)(leaflet篇.43)
2023-01-30
leaflet叠加多个面(面的数据结构)(leaflet篇.62)
2023-01-30
leaflet图标跳动(leaflet篇.45)
2023-01-30
leaflet地图无级别缩放(移动端)(leaflet篇.76)
2023-01-30
leaflet实现wms服务面要素可点击(leaflet篇.30)
2023-01-30
Leaflet快速入门与加载OSM显示地图
2023-01-30
leaflet接入geoserver发布的热力图服务(leaflet篇.29)
2023-01-30
leaflet接入土地资源(leaflet篇.55)
2023-01-30
leaflet接入天地图(经纬度投影256)(leaflet篇.24)
2023-01-30
leaflet点采集与点编辑(leaflet篇.5)
2023-01-30
leaflet聚合图(leaflet篇.11)
2023-01-30
leaflet自定义地图样式地图(插件实现)(leaflet篇.18)
2023-01-30