题解 | #调整数组顺序使奇数位于偶数前面(二)#
调整数组顺序使奇数位于偶数前面(二)
https://www.nowcoder.com/practice/0c1b486d987b4269b398fee374584fc8
调整数组顺序使奇数位于偶数前面(二):最直观的想法是,双指针。使用变量i指向奇数,初始为0,使用变量j指向偶数,初始为n-1,当i小于j时执行循环,首先找到左边第一个偶数,再找到右边第一个奇数,然后交换两者,并将指针向内收缩。
vector<int> reOrderArrayTwo(vector<int>& array)
{
int n=array.size();
// i指向左边部分
int i=0;
// j指向右边部分
int j=n-1;
while(i<j)
{
// 左边奇数 找到第一个偶数
while(array[i]%2!=0)
i++;
// 右边偶数 找到第一个奇数
while(array[j]%2==0)
j--;
// 交换两者
if(i<j)
{
swap(array[i],array[j]);
i++;
j--;
}
}
return array;
}
#调整数组顺序使奇数位于偶数前面(二)(37428)#剑指offer 文章被收录于专栏
剑指offer专栏主要分享剑指offer题解。
