题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
解题思路:本题较为基础,主要还是考察数组的遍历操作吧
参考答案:
#include <iostream>
#include <vector>
#include <string>
#include <stack>
#include <algorithm>
#include <math.h>
using namespace std;
class Solution {
public:
vector<int> exchange(vector<int>& nums) {
int left = 0;
int right = nums.size()-1;
while(left < right)
{
if(nums[left]%2 == 0 && nums[right]%2 == 1)
{
swap(nums[left],nums[right]);
left++;
right--;
}
if(left < right && nums[left]%2 == 1)
left++;
if(left < right && nums[right]%2 == 0)
right--;
}
return nums;
}
};
int main(){
Solution solution;
vector<int> my_array;
my_array.push_back(1);
my_array.push_back(2);
my_array.push_back(3);
my_array.push_back(4);
my_array.push_back(5);
my_array.push_back(6);
my_array.push_back(7);
solution.reOrderArray(my_array);
// cout<<"result:"<<solution<<endl;
return 0;
}