劍指Offer13 調整陣列順序使奇數字於偶數前面

2021-10-01 08:14:17 字數 1536 閱讀 2617

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

建立雙向佇列,遍歷陣列,奇數前插入,偶數後插入。最後使用assign方法實現不同容器但相容的型別賦值。

知識點一:c++借助雙向佇列能從前、後分別插入資料的優勢。python的list.insert也可以實現

class solution 

if(array[i]%2

==0)}

array.

assign

(result.

begin()

,result.

end())

;}};

# -*- coding:utf-8 -*-

from collections import deque

class

solution

:def

reorderarray

(self, array)

:# write code here

odd = deque(

) l =

len(array)

for i in

range

(l):

if array[l-i-1]

%2!=0

:-i-1]

)if array[i]%2

==0:)

return

list

(odd)

# -*- coding:utf-8 -*-

class

solution

:def

reorderarray

(self, array)

: res =

num =

len(array)

for i in

range

(num)

:if array[num-i-1]

%2==1

: res.insert(

0,array[num-i-1]

)if array[i]%2

==0:)

return res

# -*- coding:utf-8 -*-

class

solution

:def

reorderarray

(self, array)

: num =

len(array)

temp =

0for i in

range

(num)

:if array[i]%2

: array.insert(temp,array.pop(i)

) temp +=

1return array

劍指Offer13 調整陣列順序使奇數字於偶數前面

思路 依次判斷每個元素,若是奇數則放到odd列表中,若是偶數則放到even列表中。然後將兩個列表合併再返回。coding utf 8 class solution def reorderarray self,array write code here odd even x len array for...

劍指offer 調整陣列順序

時間限制 1秒 空間限制 32768k 本題知識點 陣列 題目描述 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。首先想到的是利用兩個輔助陣列,乙個儲存奇數,乙個儲存偶數,這樣的...

劍指offer(調整陣列順序)

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。1 暴力解法 從前到位掃瞄陣列,如果出現前面是偶數後面是奇數的情況,則交換。其中使用氣泡排序的思想。從後面朝前比較,使用外迴圈控制趟...