问题描述:
给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。
示例:
输入:[3,1,2,4]
输出:[2,4,3,1]
输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。
分析:
1.建立一个新的数组用来存放需要的结果
2.定义两个临时变量,一个指向新的数组的头下标,另一个指向新的数组的尾下标
3.遍历源数组,如果是奇数,就从尾下标开始存放,然后尾下标减一;如果是偶数,就从头下标开始存放,头下标加一
4.当头下标大于尾下标时结束循环
代码:
class Solution {
public int[] sortArrayByParity(int[] A) {
int [] a = new int[A.length];
int right = A.length-1;
int left = 0;
while(left <= right){
for(int i = 0;i<A.length;i++){
if(A[i] %2==0){
a[left++] = A[i];
}else{
a[right--] = A[i];
}
}
}
return a;
}
}