双指针算法
定义两个指针,一个从前往后,另外一个从后往前,
首先操作第1个指针,当第一个指针指向偶数时停下,
接着操作第2个指针,第二个指针指向奇数时停下,
将两个指针所指向的变量进行交换,再进行下一次迭代,直到两个指针相遇
class Solution {
public:
void reOrderArray(vector<int> &array) {
int l = 0, r = array.size() - 1;
while (l < r) {
while (l < r && array[l] % 2 == 1) l ++ ;
while (l < r && array[r] % 2 == 0) r -- ;
if (l < r) swap(array[l], array[r]);
}
}
};