奇偶分割数组

来源:互联网 发布:young 域名 编辑:程序博客网 时间:2024/06/10 01:27

题目描述:分割一个整数数组,使得奇数在前偶数在后。

样例:给定 [1, 2, 3, 4],返回 [1, 3, 2, 4]。

想想在快速排序中,每一次递归是如何调整元素位置的。通过依次遍历,交换的方法,如果记不得了,可以点回去看看(详见:点击打开链接)

所以,这个题类似,直接写出代码就行了:

class Solution:    # @param nums: a list of integers    # @return: nothing    def partitionArray(self, nums):        left, right = 0, len(nums) - 1        while left < right:            if self.iseven(nums[left]):                nums[left], nums[right] = nums[right], nums[left]                right -= 1            else:                left += 1        return nums    def iseven(self, n):        return n % 2 == 0        # write your code here

可见,这种交换元素的手法(也是快排中的基本操作),是经常用到的,一定要非常熟练。

同时,我们发现同样的操作在链表中的话(比如,链表划分从逻辑上将考察的是一样的东西:点击打开链接),操作上会更复杂一点,数组还是比较简单的东西。


0 0
原创粉丝点击