905. 按奇偶排序数组
难度简单
给定一个非负整数数组 A
,返回一个数组,在该数组中, A
的所有偶数元素之后跟着所有奇数元素。
你可以返回满足此条件的任何数组作为答案。
示例:
输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。
提示:
1 <= A.length <= 5000
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 }