題目:輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位于數組的前半部分,所有的偶數位于位于數組的后半部分,并保證奇數和奇數,偶數和偶數之間的相對位置不變。
思路:構建兩個列表,依次遍歷原數組,檢查數組內元素,若為奇數則添加入第一個列表,若為偶數則添加入第二個列表。最后將以上兩個列表拼接進行輸出。時間復雜度O(n),空間復雜度O(n).
Python代碼如下
class Solution:
def reOrderArray(self, array):
odd = []
even = []
for item in array:
if item % 2 == 1:
odd.append(item)
else:
even.append(item)
return odd + even
s = Solution()
ls = [1,2,4,3,5,8,6,9,7]
print s.reOrderArray(ls) # [1, 3, 5, 9, 7, 2, 4, 8, 6]