确定数组中奇数的数量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