劍指offer系列:調整數組順序使奇數位於偶數前面

描述

輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。

代碼

public class Solution {
    public void reOrderArray(int [] array) {
        int doublenum=0;
        for(int i=0;i<array.length-1;i++){
            
            if(array[i]%2==0){
                doublenum++;
            }
            if(doublenum!=0&array[i+1]%2!=0){
                int cur=array[i+1];
                // 1 2 3 4 5 6 7
                // 1 3 2 4 5 6 7
                // 
                for(int j=i;j>=i-doublenum+1;j--){
                    array[j+1]= array[j];
                }
                array[i-doublenum+1]=cur;
                doublenum--;
            }
        }
    }
}

新得

這道題的關鍵在於什麼時候移位,並且移動幾位,
移位的要求 :該數爲奇數,且前面至少有1個偶數
移動幾位:將該數前面的偶數依次後移1位,將該數前移 前面的偶數個數 位

發佈了131 篇原創文章 · 獲贊 144 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章