LeetCode #922. Sort Array By Parity II
题目
解题方法
设置两个奇偶指针分别指向0和1,遍历数组,分别找到第一个不符合题意的偶数位置和奇数位置,交换元素,再找下一个这样的奇偶位置组合,直到某一个指针到达数组结尾。
时间复杂度:O(n)
空间复杂度:O(1)
代码
class Solution:
def sortArrayByParityII(self, A: List[int]) -> List[int]:
even = 0
odd = 1
while even < len(A) and odd < len(A):
while even < len(A) and not A[even] % 2: even += 2
while odd < len(A) and A[odd] % 2: odd += 2
if even < len(A) and odd < len(A):
A[even], A[odd] = A[odd], A[even]
even += 2
odd += 2
return A

浙公网安备 33010602011771号