第一次尝试
给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案。LeetCode链接
- 方法:双指针法,设置指针 begin、end,分别从数组头尾开始,begin 向后遍历找到一个奇数,end 向前遍历找到一个偶数,然后二者交换,直到 begin 不小于 end 为止;
int* sortArrayByParity(int* A, int ASize, int* returnSize){
*returnSize = ASize;
//设置收尾指针
int begin = 0;
int end = ASize - 1;
//循环遍历
while(begin < end){
//找到一个奇数
while(begin < end && A[begin] % 2 == 0){
begin++;
}
//找到一个偶数
while(begin < end && A[end] % 2 != 0){
end--;
}
//交换
int tmp = A[begin];
A[begin] = A[end];
A[end] = tmp;
}
return A;
}