905. Sort Array By Parity
Problem
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
Implementation
- Similar #75. Sort Colors
class Solution {
private int[] nums;
public int[] sortArrayByParity(int[] nums) {
this.nums = nums;
int left = 0; int mid = 0; int right = nums.length-1;
while (mid <= right) {
if (isEven(nums[mid])) {
swap(mid, left);
mid++;
left++;
} else {
swap(mid, right);
right--;
}
}
return nums;
}
private void swap(int a, int b) {
int tmp = nums[a];
nums[a] = nums[b];
nums[b] = tmp;
}
private boolean isEven(int x) {
return x % 2 == 0;
}
}