题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
import java.util.*;
public class Solution {
public void reOrderArray(int [] array) {
ArrayList<Integer> list = new ArrayList<>();
ArrayList<Integer> list2 = new ArrayList<>();
for(int i =0;i<array.length;i++){
if(array[i] %2 == 0){
list.add(array[i]);
}else{
list2.add(array[i]);
}
}
list2.addAll(list);
for(int i=0;i<array.length;i++){
array[i] = list2.get(i);
}
}
}
或
public class Solution {
public void reOrderArray(int [] array) {
int [] temp = new int[array.length];
int indexOdd = 0;
int indexEven = 0;
for(int i = 0; i<array.length; i++){
if(array[i] % 2 != 0){
array[indexOdd++] = array[i];
}else{
temp[indexEven++] = array[i];
}
}
for(int i = 0;i<indexEven;i++){
array[i + indexOdd] = temp[i];
}
}
}