905. Sort Array By Parity
Problem
Tags: Array
, Two Pointers
, Sorting
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.
Example 1:
Input: nums = [3,1,2,4]
Output: [2,4,3,1]
Explanation: The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.
Example 2:
Input: nums = [0]
Output: [0]
Constraints:
1 <= nums.length <= 5000
0 <= nums[i] <= 5000
Code
C
// 905. Sort Array By Parity (5/27/54029)
// Runtime: 41 ms (41.18%) Memory: 8.89 MB (86.76%)
int* sortArrayByParity(int nums[], int numsSize, int* returnSize) {
int head = 0, tail = 0;
while (tail < numsSize) {
if (nums[tail] % 2 == 0) {
int temp = nums[head];
nums[head] = nums[tail];
nums[tail] = temp;
head++;
}
tail++;
}
*returnSize = numsSize;
return nums;
}