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;
}
}