【剑指Offer】调整数组顺序使奇数位于偶数前面 解题报告(Python)

【牛客网】调整数组顺序使奇数位于偶数前面 解题报告

标签(空格分隔): 牛客网


题目地址:https://www.nowcoder.com/questionTerminal/beb5aa231adc45b2a5dcc5b62c93f593?orderByHotValue=1&page=1&onlyReference=false

题目描述:

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

Ways

可以用排序等思想,但是没有限制空间复杂度啊!直接两个奇数偶数两个数组再放到一块就行了!

# -*- coding:utf-8 -*-
class Solution:
    def reOrderArray(self, array):
        def isOdd(a):
            return (a & 1) == 1
        answer = [i for i in array if isOdd(i)]
        answer.extend([i for i in array if not isOdd(i)])
        return answer

方法二:

sorted()函数。

# -*- coding:utf-8 -*-
class Solution:
    def reOrderArray(self, array):
        return sorted(array, key = lambda x: x % 2 == 0)

Date

2017 年 8 月 30 日

posted @ 2017-08-30 15:32  负雪明烛  阅读(31)  评论(0)    收藏  举报