class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型vector
* @return int整型vector
*/
## 方法一:
//冒泡排序走一个。超时,,过不了
vector<int> reOrderArray(vector<int>& array) {
// // write code here
// if(array.empty()) return array;
// for(int i=0;i<array.size()-1;i++)
// for(int j=0;j<array.size()-1;j++){
// // if(((array[j]&1)==0)&&((array[j+1]&1)==1)){
// if(array[j]%2==0&&array[j+1]%2==1){
// swap(array[j],array[j+1]);
// }
// }
// return array;
方法二:
//奇数从前往后相等,偶数就插到后面,然后删除中间没用改变的数;
// int count=0;
// int num=array.size();
// //array.resize(2*num);
// for(int i=0;i<num;i++){
// if(array[i]&1){
// array[count]=array[i];
// count++;
// }else
// array.push_back(array[i]);
// }
// array.erase(array.begin()+count,array.begin()+num);
// return array;
## 方法三:
/*
int i=array.size();
vector<int> v_even;
int count=0;
for(int i=0;i<array.size();i++){
if(array[i]&1){
array[count]=array[i];
count++;
}
else
v_even.push_back(array[i]);
}
//直接将多的删除掉,再插入
while(array.size()!=count){
array.pop_back();
}
array.insert(array.end(),v_even.begin(),v_even.end());
//下面通过,先插入,后用resize调整
// array.insert(array.begin()+count,v_even.begin(),v_even.end());
//array.resize(i);
return array;
*/
## 方法四:
//直接创建两个vector,遍历,奇数插入和偶数插入
vector<int> v_even;
vector<int> v_odd;
for(int i=0;i<array.size();i++){
if(array[i]&1)
v_odd.push_back(array[i]);
else
v_even.push_back(array[i]);
}
v_odd.insert(v_odd.end(),v_even.begin(),v_even.end());
return v_odd;
}
};