class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param array int整型vector 
     * @return int整型vector
     */
    //双指针算法
    vector<int> reOrderArrayTwo(vector<int>& array) {
        // write code here
        if(array.size()==0||array.size()==1){
            return array;
        }
        int left=0,right=array.size()-1;
        int index=0;
        while(left<right&&index<array.size()){
            if(array[index]%2==0){
                if(index==right){
                    index++;
                    right--;
                }
                else{
                    int tmp=array[index];
                    array[index]=array[right];
                    array[right]=tmp;
                    right--;
                }
            }
            else{
                if(index==left){
                    index++;
                    left++;
                }
                else{
                    int tmp=array[index];
                    array[index]=array[left];
                    array[left++]=tmp;
                }
            }
        }
        return array;
    }
};