描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
输入:[1,2,3,4]
返回值:[1,3,2,4]
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型vector
* @return int整型vector
*/
vector<int> reOrderArray(vector<int>& array) {
// write code here
queue<int> a, b;
for(int i=0; i<array.size();i++){
if(array[i]%2 == 1)
a.push(array[i]);
else
b.push(array[i]);
}
int i = 0;
while(!a.empty()){
array[i] = a.front();
a.pop();
i++;
}
while(!b.empty()){
array[i] = b.front();
b.pop();
i++;
}
return array;
}
};
冒泡思想
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型vector
* @return int整型vector
*/
vector<int> reOrderArray(vector<int>& array) {
// write code here
int i = 0, length = array.size();
for(int j = 0; j<length; j++){
if(array[j] % 2 == 1){
int tmp = array[j];
for(int k = j-1; k>=i;k--){
array[k+1] = array[k];
}
array[i++] = tmp;
}
}
return array;
}
};