给定一个非负整数数组 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
Java
采用双指针的方式,如果为偶数,就添加到开头,如果是奇数,就添加到尾部,无序考虑顺序。
class Solution {
public int[] sortArrayByParity(int[] A) {
int len = A.length;
int[] res = new int[len];
int leftIndex = 0;
int rightIndex = A.length - 1;
for (int a : A) {
if (a % 2 == 0) {
res[leftIndex] = a;
leftIndex++;
} else {
res[rightIndex] = a;
rightIndex--;
}
}
return res;
}
}
Python
分别得出奇数组和偶数组,然后将两个数组拼接起来。
class Solution:
def sortArrayByParity(self, A):
E = []
O = []
N = []
for a in A:
if a % 2 == 0:
E.append(a)
else:
O.append(a)
for e in E:
N.append(e)
for o in O:
N.append(o)
return N
使用N会比O+E快