给你一个整数数组 nums
,将 nums
中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。
返回满足此条件的 任一数组 作为答案。
示例 1:
输入:nums = [3,1,2,4] 输出:[2,4,3,1] 解释:[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。
示例 2:
输入:nums = [0]
public int[] sortArrayByParity(int[] nums) {
if (nums == null || nums.length == 1) return nums;
int i = 0, j = nums.length - 1;
int tem;
while (i < j) {
// 左指针对应奇数值,右指针对应偶数值,进行交换
if ((nums[i] & 1) == 1 && (nums[j] & 1) == 0) {
tem = nums[i];
nums[i] = nums[j];
nums[j] = tem;
// 交换完成之后仍然需要移动指针
i++;
j--;
}
// 左指针对应偶数,符合题意则继续向右移动
while ((nums[i] & 1) == 0) {
i++;
}
// 右指针对应奇数,符合题意则继续向左移动
while ((nums[j] & 1) == 1) {
j--;
}
}
return nums;
}
输出:[0]
提示:
1 <= nums.length <= 5000
0 <= nums[i] <= 5000