劍指offer面試題14----調整數組順序使奇數位于偶數前面

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

思路:構建兩個列表,依次遍歷原數組,檢查數組內元素,若為奇數則添加入第一個列表,若為偶數則添加入第二個列表。最后將以上兩個列表拼接進行輸出。時間復雜度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]
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容