题目
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
示例:
输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。
提示:
1 <= nums.length <= 500001 <= nums[i] <= 10000
答案1
from typing import Listclass Solution:def exchange(self, nums: List[int]) -> List[int]:res_odd = []res_even = []for i in nums:if not i % 2:res_even.append(i)else:res_odd.append(i)return res_odd + res_evenSolution().exchange([1, 2, 3, 4])
Note
使用两个列表
第一个存奇数,第二个存偶数,再拼接两个数组
答案2 一行
from typing import Listclass Solution:def exchange(self, nums: List[int]) -> List[int]:print(sorted(nums, key=lambda x: x % 2 != 1))return sorted(nums, key=lambda x: x % 2 != 1)Solution().exchange([1, 2, 3, 4])
Note
sorted 的 key 参数,函数返回true 不排序?
