java數據結構和算法(11)調整順序使奇數位於偶數前

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