给定一个非负整数数组 A
,返回一个由 A
的所有偶数元素组成的数组,后面跟 A
的所有奇数元素。
你可以返回满足此条件的任何数组作为答案。
示例:
输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。
提示:
1 <= A.length <= 5000
0 <= A[i] <= 5000
思路:
从数组末尾开始,如果碰到偶数不处理,碰到奇数,就和数组末尾的 i 交换,将奇数交换到末尾去。用两个指针,一个指针 j 遍历数组,一个指针 i 维护被换到末尾奇数的下标。
代码:
class Solution {
public int[] sortArrayByParity(int[] A) {
int i = A.length-1;
for(int j = A.length-1; j >=0; j--){
if(A[j]%2 != 0){
int temp = A[i];
A[i] = A[j];
A[j] = temp;
i--;
}
}
return A;
}
}