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

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

暴力法,双指针法

暴力法就是两次循环,一次找奇数,一次找偶数
双指针法就是两个指针i,j分别指向头和尾
指针i
从0开始,遇到奇数就i++;遇到偶数就与j交换,同时j--;
指针j
从length()-1开始,遇到偶数就j--;遇到奇数就与i交换,同时i++;

代码

class Solution {
public:
    vector<int> exchange(vector<int>& nums) {
        int i=0;
        int j=nums.size()-1;
        while(i<j)
        {
            int temp;
            if(nums[i]%2==0)
            {
                temp=nums[i];
                nums[i]=nums[j];
                nums[j]=temp;
                j--;
            }else
            {
                i++;
            }
            
            if(nums[j]%2==0)
            {
                j--;
            }else{
                temp=nums[i];
                nums[i]=nums[j];
                nums[j]=temp;
                i++;
            }
        }
        return nums;
    }
};
posted @ 2020-10-12 23:05  韩天尊  阅读(58)  评论(0)    收藏  举报