905. Sort array by parity

Sort Array By Parity - LeetCode

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
class Solution {
    public int[] sortArrayByParity(int[] nums) {
        int left = 0, right = nums.length - 1;
        while (left < right){
            while (left < nums.length && (nums[left] & 1) != 1) left++;
            while (right >= 0 && (nums[right] & 1) == 1) right--;
            if (left < right){
                int temp = nums[left];
                nums[left] = nums[right];
                nums[right] = temp;
            }
        }
        return nums;
    }
}
  • code
class Solution:
    def sortArrayByParity(self, A: List[int]) -> List[int]:
        start, end = 0, len(A) - 1
        while start < end:
            while A[start] % 2 == 0 and start < end:
                start += 1
            while A[end] % 2 == 1 and start < end:
                end -= 1
            A[start], A[end] = A[end], A[start]
            start += 1
            end -= 1
        return A