描述:
step 1:遍历数组,统计奇数出现的次数,即找到了偶数开始的位置。
step 2:准备一个和原数组同样长的新数组承接输出,准备双指针,x指向奇数开始的位置,y指向偶数开始的位置。
step 3:遍历原数组,遇到奇数添加在指针x后面,遇到偶数添加在指针y后面,直到遍历结束。
import java.util.*;
public class Solution {
public int[] reOrderArray (int[] array) {
int n = array.length;
int[] res = new int[n];
//统计奇数个数
int odd = 0;
//遍历统计
for(int i = 0; i < n; i++){
if(array[i] % 2 == 1)
odd++;
}
//x与y分别表示答案中奇偶数的坐标
int x = 0, y = odd;
for(int i = 0; i < n; i++){
//奇数在前
if(array[i] % 2 == 1){
res[x] = array[i];
x++;
//偶数在后
}else{
res[y] = array[i];
y++;
}
}
return res;
}
}