偶奇の前になるようにアレイの順序を調整するために、[安全にオファーを証明]

偶奇の前になるようにアレイの順序を調整します

タイトル

配列内の数字の順序を調整する機能を実現するために、整数の配列を入力します。

全ては、奇数配列の最初の半分は、全ての偶数アレイの第2の半分に位置するように配置します。

サンプル

入力:[1,2,3,4,5]

出力:[1,3,5,2,4]

問題の解決策

ダブルポインタ演算、配列Iにヘッドポインタ、アレイへJテールポインタ、遭遇したポインタをデクリメントJ奇数停止、私も停止ポインタに遭遇した2つの値を交換するためにインクリメントされ、ポインタがされ、反復は、2つのポインタを満たすために継続

class Solution {
public:
    void reOrderArray(vector<int> &array) {
        int i = 0, j = array.size() - 1;
        while (i < j) {
            while (i < j && array[j] % 2 == 0) j --;
            while (i < j && array[i] % 2 == 1) i ++;
            swap(array[i], array[j]);
        } 
    }
};
公開された10元の記事 ウォンの賞賛0 ビュー538

おすすめ

転載: blog.csdn.net/weixin_44922845/article/details/104108046