调整数组顺序使奇数位于偶数前面

题目 调整数组顺序使奇数位于偶数前面

image-596074b9

思路分析

快排一样的思路

i指针从第一个元素的左边开始 j指针从最后一个元素的右边开始

往中间逼近 如果i找到了一个偶数 停止 j找到了一个奇数 停止

如果i是小于j的 就交换两个指针的值

代码实现

class Solution {

public:

    void reOrderArray(vector<int> &array) {

        //0开始 所以从0左边的位置开始找 size是最后一个数的右边 快排模板

        int i=-1,j=array.size();

        while(i<j)

        {

            do{

                i++;

            }while(i<j && array[i] % 2 == 1);//找到偶数停止

            do{

                j--;

            }while(i<j && array[j] % 2 == 0);//找到奇数停止

            if(i<j)

                swap(array[i],array[j]);//交换

        }

    }

};

同类题型

视频讲解


⬅️ 有效三角形的个数 🏠 00-刷题理模型 ➡️ 共享