[Lc]面试题21调整数组顺序使奇数位于偶数前面
Contents
题目
题解
双指针,左找到偶数,右找到奇数,然后交换,继续循环
- 时间复杂度$O(n)$
- 空间复杂度$O(1)$,原地交换
class Solution {
public:
vector<int> exchange(vector<int>& nums) {
int p1=0, p2 = nums.size()-1;
while(p1<p2){
while(p1<p2 && nums[p1]%2 != 0) p1++;
while(p1<p2 && nums[p2]%2 == 0) p2--;
swap(nums[p1], nums[p2]);
}
return nums;
}
};
Author ChrisHRZ
LastMod 2020-05-14