LeetCode #905. Sort Array By Parity
题目
解题方法
双指针法,取首位指针i,j,遍历数组从左边开始找到第一个奇数,从右边开始找到第一个偶数,找到后如果 i < j 就交换位置,否则循环结束返回原矩阵。
时间复杂度:O(n)
空间复杂度:O(1)
代码
class Solution:
def sortArrayByParity(self, A: List[int]) -> List[int]:
i, j = 0, len(A) - 1
while i < j:
while i < len(A) - 1 and not A[i] % 2: i += 1
while j > -1 and A[j] % 2: j -= 1
if i < j:
A[i], A[j] = A[j], A[i]
i, j = i + 1, j - 1
return A

浙公网安备 33010602011771号