劍指offer之使陣列的奇數在偶數前面
阿新 • • 發佈:2018-12-11
題目描述
輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
思路
歸併排序相對順序不變性的特點,複雜度,需要注意的是,比較時需要控制的不是大小,而是奇偶性。C++自帶的庫函式std::stable_sort
有這個功能。。。相當省心啊。。。
AC程式碼
注意自定義的lambda比較函式。。。。
class Solution {
public:
void reOrderArray(vector<int > &array) {
stable_sort(array.begin(), array.end(), [](const int& a, const int& b)->bool {
if(a % 2 != 0 && b % 2 == 0) {
return true;
} else {
return false;
}
});
}
};