- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。。完成如下代码:
public class Solution {
public void reOrderArray(int [] array) {
}
}
- 思路:遍历数组,将奇数和偶数分别存入两个集合,再写入数组。
- 代码
public class Solution {
public void reOrderArray(int [] array) {
if (array == null || array.length <= 1) {
return;
}
ArrayList<Integer> odds = new ArrayList<>();
ArrayList<Integer> evens = new ArrayList<>();
for (int i = 0; i < array.length; i++) {
if (array[i] % 2 == 1) {
odds.add(array[i]);
} else {
evens.add(array[i]);
}
}
for (int i = 0; i < odds.size(); i++) {
array[i] = odds.get(i);
}
int len = odds.size();
for (int i = 0; i < evens.size(); i++) {
array[len + i] = evens.get(i);
}
odds.clear();
odds=null;
evens.clear();
evens=null;
}
}
网友评论