题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
-----------------------------------------------------------------------------------
(一)如果要求有顺序
重新定义一个vector,从前向后遍历vector,遇到奇数push_back;再遍历vector,遇到偶数push_back
(二)就是交换奇偶顺序
双指针法,碰见前面是偶数,后面是奇数就交换
class Solution {
public:
void reOrderArray(vector<int> &array) {
int array_S = array.size();
if (array_S <= 0)
{
return;
}
vector<int> bp;
int start_S = 0;
int end_S = array_S - 1;
for (int i = 0;i < array_S;i++)
{
if (array[i] % 2 == 1)
{
bp.push_back(array[i]);
}
}
for (int i = 0;i < array_S;i++)
{
if (array[i] % 2 == 0)
{
bp.push_back(array[i]);
}
}
array = bp;
}
};
第二种代码看剑指offer