0905. Sort Array by Parity

0905. Sort Array by Parity #

题目 #

  • 给定整数数组 nums,将 nums 中偶数元素移动到数组前面,奇数元素移动到数组末端。
  • 返回满足此条件的 任一数组 作为答案。

思路 #

双指针 #

代码 #

双指针 #

class Solution {
    boolean isEven(int num) { return num % 2 == 0; }
    boolean isOdd(int num) { return num % 2 == 1; }
    public int[] sortArrayByParity(int[] nums) {
        int i = 0, j = nums.length - 1;
        while (i < j) {
            if (isEven(nums[i])) i += 1;
            else if (isOdd(nums[j])) j -= 1;
            else if (isEven(nums[i]) == isOdd(nums[j])) {
                nums[i] ^= nums[j];
                nums[j] ^= nums[i];
                nums[i] ^= nums[j];
                
                i += 1; j -= 1;
            }
        }
        return nums;
    }
}