- 輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得全部的奇數位於數組的前半部分,全部的偶數位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。。完成以下代碼:
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;
}
}
複製代碼