LeetCode 905. 按奇偶排序数组

给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。

你可以返回满足此条件的任何数组作为答案。

示例:

输入:[3,1,2,4]
输出:[2,4,3,1]
输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。

提示:

  1. 1 <= A.length <= 5000
  2. 0 <= A[i] <= 5000

思路:开辟一个数组,利用双指针,一个从左边开始记录偶数,一个从右边记录奇数,遍历一边数组即可。

 1 /**
 2  * Note: The returned array must be malloced, assume caller calls free().
 3  */
 4 int* sortArrayByParity(int* A, int ASize, int* returnSize){
 5     int* num;
 6     num=(int*)malloc(ASize*sizeof(int));
 7     int l=0,r=ASize-1,i;
 8     for(i=0;i<ASize;i++){
 9         if(A[i]%2==0){
10             num[l++]=A[i];
11         }else{
12             num[r--]=A[i];
13         }
14     }
15     *returnSize=ASize;
16     return num;
17 }
原文地址:https://www.cnblogs.com/woju/p/12734769.html