(一)题目描述
(二)思想方法
设置两个指针,一个指向数组起始位置low=0;一个指向数组末尾high=A的大小减一。若数组low位置的数是偶数则low++,直到遇到奇数,high类似,若high的位置为奇数,则high--,直到遇到偶数,若此时low<high,则他俩交换。直到low不小于high。
(三)代码实现
class Solution {
public:
vector<int> sortArrayByParity(vector<int>& A)
{
int n = A.size();
int low = 0, high = n - 1;
int temp = 0;
while (low < high)
{
while (low<n&&A[low] % 2 == 0)
{
low++;
}
while (high>=0&&A[high] % 2 != 0)
{
high--;
}
if(low < high)
{
temp = A[high];
A[high] = A[low];
A[low] = temp;
}
}
return A;
}
};