LeetCode #905. Sort Array By Parity

题目

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
posted @ 2020-11-20 15:09  老鼠司令  阅读(59)  评论(0)    收藏  举报