调整数组顺序使奇数位于偶数前面(python)

题目描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

思路:

两个指针: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

 

你可能感兴趣的:(剑指offer限时促销)