剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
思路一:使用快慢双指针
1: i找偶数找到了,继续往下执行,找不到i++
2:j找奇数,找到了继续往下执行,找不到j–
3:最后交换
class Solution {
public:
vector<int> exchange(vector<int>& nums) {
//双指针,i找偶数,j找奇数
int i=0,j=nums.size()-1;
while(i<j){
//当前面一半,i是奇数i继续++,当i是偶数往后执行
if(nums[i]%2==1) {
i++;
continue;
}
//当后面一半,i是偶数j--;当找到奇数往后执行
if(nums[j]%2== 0){
j--;
continue;
}
//奇数偶数都找到了交换
swap(nums[i], nums[j]);
}
return nums;
}
};