輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
思路:遍歷數組,將數組中的所有奇數按順序存在鏈表一中,將所有偶數按順序存在鏈表二中,遍歷鏈表一將其所存儲的所有奇數值賦值給數組的前半部分,遍歷鏈表二將其所存儲的所有偶數值賦值給數組的後半部分,代碼如下:
import java.util.ArrayList;
public class Solution {
public void reOrderArray(int [] array) {
if(array==null||array.length==0){
return;
}
ArrayList<Integer> oddList = new ArrayList<Integer>();
ArrayList<Integer> evenList = new ArrayList<Integer>();
for(int i:array){
if(i%2==0){
evenList.add(i);
}else{
oddList.add(i);
}
}
for(int i=0;i<oddList.size();i++){
array[i] = oddList.get(i);
}
for(int i=oddList.size();i<array.length;i++){
array[i] = evenList.get(i-oddList.size());
}
}
}