【LeetCode & 劍指offer刷題】陣列題13:21 調整陣列順序使奇數位於偶數前面
阿新 • • 發佈:2019-01-05
【LeetCode & 劍指offer 刷題筆記】目錄(持續更新中...)
21 調整陣列順序使奇數位於偶數前面
題目描述
輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分, 所有的偶數位於陣列的後半部分,並保 證奇數和奇數,偶數和偶數之間的相對位置不變。 /* 方法:用一個臨時陣列存奇數和偶數,聯絡問題odd even linked list O(n), O(n)用空間換時間- 可以把while中的第二個條件剝離出來,變成一個函式指標,以傳入不同規則(判斷數字應該在前半部分還是在後半部分)
- STL中partition函式的做法
- 如果要保證調整後,各自部分的相對順序不變,則可用stable_partition函式
- 問題舉例
- 調整陣列使奇數在前,偶數在後
- 調整陣列使小於某個數(pivot)的數在前,大於的在後
- 調整陣列使負數在前,非負數在後
- 調整陣列使能被3整數的數在前,不能整數的在後