当前位置: 首页> 教育> 就业 > leetcode:颜色分类

leetcode:颜色分类

时间:2025/7/11 15:10:43来源:https://blog.csdn.net/SzyPy/article/details/140958571 浏览次数:0次

  题目:

        本题是经典的「荷兰国旗问题」,由计算机科学家 Edsger W. Dijkstra 首先提出。

        给定一个包含红色、白色和n个元素的数组nums,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数0、1和2分别表示红色、白色和蓝色。必须在不使用库内置的sort函数的情况下解决这个问题。

示例 :

输入

输出

解释
nums = [2,0,2,1,1,0]
[0,0,1,1,2,2]

提示:

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

相关标签:数组、排序、双指针

题解:   

        根据题目中的提示,我们可以统计出数组中 0,1,2 的个数,再根据它们的数量,重写整个数组。

代码:Python

import collectionsnums = [2, 0, 2, 1, 1, 0]def leetcode():dict_count, n = collections.Counter(nums), 0for i in range(3):for j in range(dict_count[i]):nums[n] = in += 1return numsif __name__ == '__main__':res = leetcode()print(res)  # [0, 0, 1, 1, 2, 2]

总结:

题目内容来源于leetcode链接:颜色分类

关键字:leetcode:颜色分类

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: