• 【剑指Offer】11调整数组顺序使奇数位于偶数前面


    题目描述

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

    时间限制:1秒;空间限制:32768K;本题知识点: 数组

    解题思路

    思路一

    创建一个新的数组,先判断保存奇数,再判断保存偶数。

    # -*- coding:utf-8 -*-
    class Solution:
        def reOrderArray(self, array):
            # write code here
            l = []
            for i in range(len(array)):
                if array[i]%2==1:
                    l.append(array[i])
            for i in range(len(array)):
                if array[i]%2==0:
                    l.append(array[i])
            return l

    思路二

    # -*- coding:utf-8 -*-
    class Solution:
        def reOrderArray(self, array):
            # write code here
            odd,even=[],[]
            for i in array:
                odd.append(i) if i%2==1 else even.append(i)
            return odd+even

    思路三

    利用lambda,python一行代码!

    # -*- coding:utf-8 -*-
    class Solution:
        def reOrderArray(self, array):
            # write code here
            return sorted(array,key=lambda x:x%2,reverse=True)
  • 相关阅读:
    WinCE 与通讯模块
    6174问题
    阶乘因式分解(一)
    三个数从小到大排序
    公约数和公倍数
    水仙花数
    韩信点兵
    5个数求最值
    求转置矩阵问题
    孪生素数问题
  • 原文地址:https://www.cnblogs.com/yucen/p/9912049.html
Copyright © 2020-2023  润新知