剑指offer-刷题笔记-简单题-JZ81 调整数组顺序使奇数位于偶数前面(二)
版本1-建立一个数组来存放最终的结果
class Solution {
public:
vector<int> reOrderArrayTwo(vector<int>& array) {
vector<int> odd;
vector<int> even;
for(int i = 0;i<array.size();i++)
{
if(array[i]%2 == 0)
{
odd.push_back(array[i]);
}else{
even.push_back(array[i]);
}
}
for(int i = 0;i<odd.size();i++)
{
even.push_back(odd[i]);
}
return even;
}
};
版本2-双指针就地交换
class Solution {
public:
vector<int> reOrderArrayTwo(vector<int>& array) {
int i = 0;
int j = array.size() - 1;
while(i < j){
if(array[i] % 2 == 1 && array[j] % 2 == 1)
i++;
else if(array[i] % 2 == 1 && array[j] % 2 == 0)
i++, j--;
else if(array[i] % 2 == 0 && array[j] % 2 == 1)
swap(array[i], array[j]);
else
j--;
}
return array;
}
};