输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
方法1:无需开辟新空间,直接用挪动的方式来调整顺序
class Solution:
def reOrderArray(self, array):
size = len(array)
pos = size-1
cnt = 0
while(cnt<size):
if array[pos]%2==1:
tmp = array[pos]
for i in range(pos-1,-1,-1):
array[i+1] = array[i]
array[0] = tmp
else:
pos -=1
cnt +=1
return array
方法2:开辟新空间
class Solution:
def reOrderArray(self, array):
# write code here
left = [x for x in array if x & 1 == 1]
right = [x for x in array if x & 1 == 0]
return left + right