欢迎来到《LeetCode趣味解题:算法也能这么玩》!今天我们要探讨的是第75题——颜色分类。这道题目好比给你一堆红白蓝的球,让你按照颜色顺序排好。这听起来有点像是让你把熊猫、企鹅和鹦鹉排队,虽看似简单,但其实暗藏玄机。下面我会详细解析多种解题方法,并通过幽默风趣的方式带你领略算法的魅力。
文章目录
题目描述
给定一个包含红色、白色和蓝色的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。
我们使用整数 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]
方法一:单指针遍历
思路
这个方法就像是把每个球看作一个小朋友,我们有一个篮子(指针)来收集红球(0)。第一次遍历过程中,把所有的红球放到前面。第二次遍历,把所有的白球放到红