值得注意的是while循环中的第一个if语句绝不可以拿到下面去,否则就会导致多判断一次而出现错误。
class Solution:
def sortArrayByParity(self, A: List[int]) -> List[int]:
i = 0
j = len(A) - 1
while (i < j):
if A[i] % 2 == 1 and (A[j] % 2 == 0 or A[j]==0):
temp = A[i]
A[i] = A[j]
A[j] = temp
i += 1
j -= 1
if (A[i] % 2 == 0):
i += 1
if (A[j] % 2 != 0):
j -= 1
return A