輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
牛客網題目鏈結
若要使奇數字於偶數前面,這個要求不難(前後兩個指標,偶數和奇數交換),而題目中還要求我們保持相對位置不變,那麼:
我們可以申請額外的空間,將陣列中的奇數和偶數都取出來,然後將原陣列按照奇偶數的規則修改,但是這樣以來會需要更多的額外空間。
也可以採用順序遍歷的方法,遇到偶數則移動到下乙個偶數的前面,不過這樣的時間複雜度比較高。
這裡介紹一種低複雜度的方法:
class
solution
else
s++;}
}bool
odd(
int num)
};
占用記憶體:476k 調整陣列順序使奇數字於偶數前 python
解題思路 此題有兩個解題思路,我先寫出第乙個,後續補充 1.利用python的特點,建立兩個陣列,乙個存放奇數,乙個存放偶數,最後將兩個陣列合併即可。這題麻煩的一點是要保持順序。輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並...
調整陣列順序使奇數字於偶數前 python
思路1 從頭遍歷找到偶數從陣列中刪除並移動到陣列末尾 arr 2 3,4 5,8 7,1 for x in range 0 len arr if arr x 2 0 s arr x arr.remove arr x print arr 思路2 兩個指標,第乙個初始化指向陣列的第乙個數字,只向後移動 ...
Python 調整陣列順序使奇數字於偶數前面
輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,是的所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。coding utf 8 時間複雜度為o n 空間複雜度為o n class solution def reorderarray s...