- 题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 分析
代码思想:新建一个数组,并设置奇数指针j,依次判断原数组的元素奇偶性,如果是奇数将其放入数组中,并j+1,如果是偶数,则插入在奇数后(即array.begin()+j之前)。该题重点在于:对于vector各函数作用和用法的熟悉。 - 代码
class Solution {
public:
void reOrderArray(vector<int> &array) {
int size=array.size();
vector<int> ans;
int j=0;
for(int i=0;i<size;i++){
if(array[i]%2==1){
ans.insert(ans.begin()+j,array[i]);
j++;
}
else{
ans.push_back(array[i]);
}
}
for(int i=0;i<size;i++){
array[i]=ans[i];
}
}
};