讨论/《数组类算法》 - 颜色分类/
《数组类算法》 - 颜色分类

Python3

"""
思路: 将红色0放在最左边; 将蓝色2放在最右边;剩下的就是白色1
方法: 双指针+遍历数组
"""
n = len(nums)-1
i = 0
l = 0
r = n
while(i <= r):
    if nums[i] == 0:
        nums[l],nums[i] = nums[i],nums[l]
        l += 1
        i += 1
    elif nums[i] == 2:
        nums[r],nums[i] = nums[i],nums[r]
        r -= 1
    else:
        i += 1
1
展开全部 29 讨论