調整陣列順序使奇數字位於偶數前面

2021-08-10 21:19:22 字數 870 閱讀 8194

題目描述:重點內容

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

解法一:

建立乙個新的陣列,存奇數,再建乙個存偶數,然後拼接,用空間換時間,迴圈一遍。

class

solution:

defreorderarray

(self, array):

odd =

even =

for num in array:

return odd+even

解法二:

類似於冒泡法,如果i位置是奇數,i-1是偶數,就交換位置,然後迴圈。

class

solution:

defreorderarray

(self, array):

if len(array) <= 1:

return array

for i in range(len(array)):

for j in range(len(array) - 1, i, -1): #從最後乙個到乙個進行迴圈,因為i為0到len(array)-1,一次迴圈保證第乙個位置是正確,外層迴圈可以保持i增大。

if array[j] % 2 == 1

and array[j - 1] % 2 == 0: #若j位是奇數,j-1是偶數,就交換,因為j最小也是1,不用擔心越界

array[j], array[j - 1] = array[j - 1], array[j]

return array

調整陣列順序使奇數字於偶數前 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...