在 Python 中对颜色进行排序
pythonserver side programmingprogramming更新于 2025/10/25 19:24:17
假设我们有一个包含 n 个对象的数组。这些对象的颜色为红色、白色或蓝色,对它们进行排序,使相同颜色的对象相邻。因此,颜色的顺序为红色、白色和蓝色。在这里,我们将使用 0、1 和 2 等数字分别表示红色、白色和蓝色。因此,如果数组为 [2,0,2,1,1,0],则输出将为 [0,0,1,1,2,2]
为了解决这个问题,我们将遵循以下步骤 −
- 设置 low := 0、mid := 0 和 high := 数组长度 – 1
- 当 mid <= high
- 如果 arr[mid] = 0,则交换 arr[mid] 和 arr[low],并将 low 和 mid 增加 1
- 否则当 arr[mid] = 2 时,交换 arr[high] 和 arr[mid],将 high 减少 1
- 否则将 mid 增加 1
示例 (Python)
让我们看下面的实现,以便更好地理解 −
class Solution(object): def sortColors(self, nums): low = 0 mid = 0 high = len(nums)-1 while mid<=high: if nums[mid] == 0: nums[low],nums[mid] = nums[mid],nums[low] low+=1 mid += 1 elif nums[mid] == 2: nums[high], nums[mid] = nums[mid], nums[high] high-=1 else: mid += 1 return nums ob1 = Solution() print(ob1.sortColors([2,0,2,1,1,0]))
输入
[2,0,2,1,1,0]
输出
[0,0,1,1,2,2]
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

