2020-06-23
1.题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所
有偶数位于数组的后半部分。
2.题解
双指针,从前往后找到第一个偶数,从后向前找到第一个奇数,然后进行交换即可。
3.代码
class Solution {
public:
vector<int> exchange(vector<int>& nums) {
int len=nums.size();
if (len==0) return vector<int>(0);
int l=0,h=len-1;
while (l<h){
while (l<h&&nums[l]&1) l++;
while (l<h&&!(nums[h]&1)) h--;
if (l<h){
int t=nums[l];
nums[l]=nums[h];
nums[h]=t;
}
}
return nums;
}
};