【剑指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)