1、题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。
2、C++
class Solution { /* DuYong 2020-9-24 */public: vector exchange(vector& nums) { if(nums.size()) { auto begin = nums.begin(); auto end = --nums.end(); while(begin < end) { while(begin < end && (*begin & 1) != 0) { begin++; } while(begin < end && (*end & 1) == 0) { end--; } if(begin < end) { swap(*begin, *end); } } } return nums; }};
3、Python
class Solution: # DuYong 2020-9-24 def exchange(self, nums: List[int]) -> List[int]: begin, end = 0, len(nums) - 1 while begin < end: while (begin < end) and (nums[begin] & 1) == 1: begin += 1 while (begin < end) and (nums[end] & 1) == 0: end -= 1 nums[begin], nums[end] = nums[end], nums[begin] return nums
![d34d6fefc4dfb4a78f8359fd9a32d308.png](https://img-blog.csdnimg.cn/img_convert/d34d6fefc4dfb4a78f8359fd9a32d308.png)