偶奇の前になるようにアレイの順序を調整します
タイトル
配列内の数字の順序を調整する機能を実現するために、整数の配列を入力します。
全ては、奇数配列の最初の半分は、全ての偶数アレイの第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]);
}
}
};