sort_array_parity.c (927B)
| // 905. Sort Array By Parity
#include <stdio.h>
#include <stdlib.h>
/*
* given an integer array 'nums', move all the even integers at the beginning of
* the array followed by all the odd integers. return any array that satisfies
* this condition
*/
int *sortArrayByParity(int *nums, int nums_size, int *return_size) {
int left = 0, right = nums_size - 1;
int *ans = (int *)malloc(sizeof(int) * nums_size);
*return_size = nums_size;
for (int i = 0; i < nums_size; i++) {
if (!(nums[i] % 2))
ans[left++] = nums[i];
else
ans[right--] = nums[i];
}
return ans;
}
int main() {
int n1[] = {3, 1, 2, 4}, n2[] = {0};
int *sabp1 = sortArrayByParity(n1, 4, NULL);
int *sabp2 = sortArrayByParity(n2, 1, NULL);
for (int i = 0; i < 4; i++)
printf("%d ", sabp1[i]); // expect: 2 4 3 1
printf("\n");
for (int i = 0; i < 1; i++)
printf("%d ", sabp2[i]); // expect: 0
printf("\n");
}
|