看了大家的题解,找了一个看似最简单的翻译成Python版本,结果发现这个思路并不简单,把while和if前后位置换一下, [1,2,0] 这个用例会运行失败
class Solution:
def sortColor(self , colors: List[int]) -> List[int]:
# write code here
l = 0
r = len(colors)-1
for i in range(len(colors)):
while i <= r and colors[i] == 2:
temp = colors[r]
colors[r] = colors[i]
colors[i] = temp
r -= 1
if colors[i] == 0:
temp = colors[l]
colors[l] = colors[i]
colors[i] = temp
l += 1
return colors



京公网安备 11010502036488号