题目描述:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序。
使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。
样例
输入:[1,2,3,4,5]
输出: [1,3,5,2,4]
解法:
使用双指针法,前一个指针,后一个指针。
class Solution {
public:
void reOrderArray(vector<int> &array) {
if(array.size() == 0)
{
return ;
}
for(int i=0, j=array.size()-1; i<j;)
{
while((array[i] & 1) == 1 && i<j)
{
i++;
}
while((array[j] & 1 )== 0 && i<j)
{
j--;
}
if(i<j)
{
swap(array[i], array[j]);
i++;
j--;
}
}
}
};