# -*- coding:utf-8 -*-
class Solution:
def reOrderArray(self, array):
# write code here
odd=[]
even=[]
for i in range(len(array)):
if array[i]%2 == 0:
even.append(array[i])
else:
odd.append(array[i])
odd=odd+even
return odd
简单直接的解法用O(n)的时间和O(n)的空间来计算
如果不用额外空间的话,此题可以看做插入排序,但是要保证相对位置一样,每次遍历到偶数需要整体将后面的向后移
# -*- coding:utf-8 -*-
class Solution:
def reOrderArray(self, array):
# write code here
tmp=0
for i in range(len(array)):
if array[i]%2==0:
for j in range(i,len(array)):
if array[j]%2==1:
tmp=array[j]
while j>i:
array[j]=array[j-1]
j=j-1
array[j]=tmp
break
return array