劍指Offer39-調整數組順序使奇數位于偶數前面
一開始想著用冒泡排序的方法來做,但是bug還是很多,后來看了評論區答案,發現直接空間換時間是最簡單的,而且和快排的寫法是類似的。
# -*- coding:utf-8 -*-
class Solution:
def reOrderArray(self, array):
# write code here
left = []
right = []
for i in range(len(array)):
if array[i]%2 != 0:
left.append(array[i])
else:
right.append(array[i])
return left+right
智能推薦
劍指offer刷題筆記——調整數組順序使奇數位于偶數前面
題目地址 https://www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593?tpId=13&tqId=11166&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 題目描述 輸入一...
劍指offer-調整數組順序使奇數位于偶數前面
題目描述 輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位于數組的前半部分,所有的偶數位于數組的后半部分,并保證奇數和奇數,偶數和偶數之間的相對位置不變。 實現思想 這道題最簡單并且想考察的思想就是利用冒泡排序一樣的算法,兩層for循環,外層用來確保從后向前依次是偶數,內層用來交換數組相鄰順序是偶奇的兩個數,交換成奇偶順序,這樣保證了每一層外循環的最后一個都會變成偶數。 代...
劍指offer之調整數組順序使奇數位于偶數前面
題目描述:輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位于數組的前半部分,所有的偶數位于位于數組的后半部分,并保證奇數和奇數,偶數和偶數之間的相對位置不變。 思路:類似選擇排序,遍歷每個元素,遇到奇數,就從這個奇數開始向前遍歷,使其前面的偶數向后覆蓋,在遍歷過程中直到遇上奇數或者到達第一個元素,結束遍歷,最后將奇數放入正確位置 代碼:...
調整數組順序使奇數位于偶數前面(劍指Offer 第 13 題)
題目描述: 輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位于數組的前半部分,所有的偶數位于位于數組的后半部分,并保證奇數和奇數,偶數和偶數之間的相對位置不變。 解題思路: 上圖中,已經將思路分為幾步曾現出來了! 第一步,先遍歷數組,找到奇數(偶數不用管,只要奇數都放在前面了,偶數自然都排到后面了),將該奇數保存到temp變量中!設置index位,初始指向數組第一位,當有奇...
劍指offer21:調整數組順序使奇數位于偶數前面 python
劍指offer21:調整數組順序使奇數位于偶數前面 python 題目描述 解法 題目描述 解法 最容易想到的方法就是定義兩個臨時列表分別存儲奇數和偶數 時間復雜度是O(n), 空間復雜度為O(n). 雙指針法 分別設置頭指針i和尾指針j 頭指針指向奇數時,i += 1, 指向偶數時不動,等待尾指針,尾指針指向偶數時,j -= 1。 如果頭指針指向偶數,尾指針指向奇數,則交換兩者。nums[i],...
猜你喜歡
劍指offer 14---調整數組順序使奇數位于偶數前面
題目: 輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有奇數位于數組的前半部分,所有偶數位于數組的后半部分。 解析: 擴展: 1.如果將題目改為把數組中的數按照大小分為兩部分,所有負數都位于非負數的前面,怎么做? PS:這個題目幾乎和上述題目相同,只需要改幾個條件 2.如果在將題目改為,能被3整除的數都放在不能被3整除的前面,怎么辦? PS: 還是只需要改幾個判斷條件。...
劍指offer——調整數組順序使奇數位于偶數前面
輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位于數組的前半部分,所有的偶數位于數組的后半部分,并保證奇數和奇數,偶數和偶數之間的相對位置不變。 題解: 搬運...
劍指 Offer 21. 調整數組順序使奇數位于偶數前面
題目描述: 輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有奇數位于數組的前半部分,所有偶數位于數組的后半部分。 解題思路 這道題很簡單,我的想法是新建一個數組永遠存儲答案,并且設置了兩個位置變量,主要是要將原數組的數據進行存儲到新數組,用數組變量來確認每個元素的位置,奇數主要是從頭開始插入,而偶數則從尾部進行插入,對原始數組進行遍歷后按照取余為0還是1進行判斷插入,就完成了。 我...
[LeetCode]劍指 Offer 21. 調整數組順序使奇數位于偶數前面
算法標簽 雙指針 題目簡敘 思路 前后指針 使用指針判斷奇數偶數,再進行交換 有點類似于快速排序中哨兵探路的思路 快慢指針 fast一直走 遇到吻合的數就和low交換 low++到下一個數去 代碼 前后指針 快慢指針...
【劍指Offer】21. 調整數組順序使奇數位于偶數前面
NowCoder 題目描述 需要保證奇數和奇數,偶數和偶數之間的相對位置不變,這和書本不太一樣。 解題思路 新建數組 方法一:創建一個新數組,時間復雜度 O(N),空間復雜度 O(N)。 冒泡 時間換空間 方法二:使用冒泡思想,每次都當前偶數上浮到當前最右邊。時間復雜度 O(N2),空間復雜度 O(1),時間換空間。...