用Python对颜色排序
假设我们有一个包含n个对象的数组。这些颜色是红色,白色或蓝色,将它们分类就位,以使相同颜色的对象相邻。因此,颜色按红色,白色和蓝色的顺序排列。在这里,我们将使用数字0、1和2分别代表红色,白色和蓝色。因此,如果数组类似于[2,0,2,1,1,0],则输出将为[0,0,1,1,2,2]
为了解决这个问题,我们将遵循以下步骤-
设置低:=0,中:=0,高:=数组长度–1
而中期<=高
如果arr[mid]=0,则交换arr[mid]和arr[low],并将low和mid增加1
否则,当arr[mid]=2时,交换arr[high]和arr[mid],将high减1
否则增加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]