给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。并且输入输出数组
时间: 2024-02-06 22:12:57 浏览: 88
对一个数组进行选择排序
好的,可以按照以下代码实现:
```python
def sortColors(nums):
left, right, cur = 0, len(nums) - 1, 0
while cur <= right:
if nums[cur] == 0:
nums[left], nums[cur] = nums[cur], nums[left]
left += 1
cur += 1
elif nums[cur] == 2:
nums[right], nums[cur] = nums[cur], nums[right]
right -= 1
else:
cur += 1
return nums
nums = [2,0,2,1,1,0]
print(sortColors(nums)) # [0, 0, 1, 1, 2, 2]
```
其中,将排序后的数组作为返回值返回,并在外部打印结果。
阅读全文