剑指 Offer 21. 调整数组顺序使奇数位于偶数前面(简单)

发布时间 2023-07-26 20:24:12作者: 孜孜不倦fly

题目:

class Solution {
public:
    vector<int> exchange(vector<int>& nums) {
        for(int i=0,j=nums.size()-1;i<j;i++){      
            if(nums[i]%2==0){                    //从i前开始,遇到偶数开始处理
                while(nums[j]%2==0&&i<j){        //尾部的数字如果是偶数则j前移直到遇到奇数。要注意有可能都没有奇数,所以要加上&&i<j
                    j--;
                }
                if(nums[j]%2==1){                //尾部找到的奇数与前头的偶数做交换
                    swap(nums[i],nums[j]);
                    j--;
                }
            }
        }
        return nums;
    }
};