32. 调整数组顺序使奇数位于偶数前面 - AcWing题库
因为要求奇数在前面,偶数在后面,我们用l,r两个指针,一个在前一个在后,如果l指针遇到了奇数那就接着往后走,直到遇到偶数为止。r指针同理,直到遇到奇数为止,此时交换l,r指针就可以前面的偶数调到后面,后面的奇数调到前面了,同时我们要保证l,rr不能相遇,相遇了就该结束遍历了。
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]);
}
}