题目:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
直接上代码,以空间换时间
public class Solution {
public void reOrderArray(int [] array) {
int len=array.length;
int odd=0;
int even=0;
for (int i=0; i<array.length; i++) {
if ((array[i]&1)==1) {
odd++;
}else {
even++;
}
}
int[] arr1=new int[odd];
int[] arr2=new int[even];
int j1=0;
int j2=0;
for (int i=0; i<array.length; i++) {
if ((array[i]&1)==1) {
arr1[j1]=array[i];
j1++;
}else {
arr2[j2]=array[i];
j2++;
}
}
j1=0;
j2=0;
for (int i=0; i<array.length; i++) {
if (i<odd) {
array[i]=arr1[j1];
j1++;
}else {
array[i]=arr2[j2];
j2++;
}
}
}
}

京公网安备 11010502036488号