没看答案,运用双指针,找到不符合要求位置的奇数和偶数进行调换即可。
class Solution:
def sortArrayByParityII(self, nums: List[int]) -> List[int]:
n = len(nums)
i, j = 0, 1
while True:
while i < n and nums[i] % 2 == 0:
i += 2
while j < n and nums[j] % 2 == 1:
j += 2
if i >= n and j >= n:
break
nums[i], nums[j] = nums[j], nums[i]
return nums