题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
思路:
两个指针:even和odd,even从数组前往后找,找到第一个偶数,odd从这个偶数之后开始找,定位第一个奇数,将这个奇数插入到第一个偶数前面,这样才能保持相对位置不变。(注意:每一个循环都要判断指针是否溢出)
class Solution:
def reOrderArray(self, array):
even = 0
while even < len(array):
while even < len(array) and array[even]%2 == 1:
even += 1
odd = even+1
while odd < len(array) and array[odd]%2 == 0:
odd += 1
if odd < len(array):
array.insert(even,array.pop(odd))
even += 1
else:
break
return array