确定数组中奇数的数量mid,然后声明一个新的数组(因为这个数组是返回值,所有不算额外空间),将奇数依次存进新数组前面,偶数则是存进新数组的mid之后的位置中,时间复杂度为O(n)
class Solution:
    def reOrderArray(self , array: List[int]) -> List[int]:
        # write code here
        if array == []:
            return []

        mid = 0
        res = []
        for i in array:
            res.append(0)
            if i % 2 == 1:
                mid += 1 # 奇数数量
        oddid = 0
        for i in range(len(array)):
            number = array[i]
            if number % 2 == 1: # 奇数
                res[oddid] = number
                oddid += 1
            else:
                res[mid] = number
                mid += 1
        return res