922 按奇偶排序陣列 II

2021-09-03 05:12:53 字數 1654 閱讀 8613

給定乙個非負整數陣列 a, a 中一半整數是奇數,一半整數是偶數。

對陣列進行排序,以便當 a[i] 為奇數時,i 也是奇數;當 a[i] 為偶數時, i 也是偶數。

你可以返回任何滿足上述條件的陣列作為答案。

示例:輸入:[4,2,5,7]

輸出:[4,5,2,7]

解釋:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也會被接受。

2 <= a.length <= 20000

a.length % 2 == 0

0 <= a[i] <= 1000

class solution:

def sortarraybyparityii(self, a):

""":type a: list[int]

:rtype: list[int]

"""i = 0

j = 1

j_list =

while j <= len(a):

if a[j] % 2 == 0:

j += 2

while i < len(a):

if a[i] % 2 != 0:

t = j_list.pop()

a[i], a[t] = a[t], a[i]

i += 2

return a

思路:

1,先遍歷奇數索引位,如果奇數字的數字是偶數,把它的索引存進列表j_list,

2,再遍歷偶數索引位,如果對應的數字是奇數,就從j_list列表中彈出乙個索引,兩者交換位置。

返回a

class solution:

def sortarraybyparityii(self, a):

""":type a: list[int]

:rtype: list[int]

"""i = 0

j = 1

t_list = [num for num in range(len(a))]

for elem in a:

if elem % 2 == 0:

t_list[i] = elem

i += 2

else:

t_list[j] = elem

j += 2

return t_list

思路:

1,先建立乙個長度等於a的列表t_list,定義奇偶2個指標,

2,遍歷列表a,如果為偶數,就把數值賦給t_list列表中偶指標對應的數值,偶指標加2;如果為奇數,就賦給奇指標對應的位置,奇指標加2;遍歷結束,返回t_list。

class solution:

def sortarraybyparityii(self, a):

""":type a: list[int]

:rtype: list[int]

"""

ou = [i for i in a if i % 2]

ji = [i for i in a if not i % 2]

return [i for n in zip(ji, ou) for i in n]

新建2個列表,分別存放奇偶數,把兩個列表壓縮成乙個個的奇偶元組,巢狀迴圈輸出到乙個列表中;(注意:zip壓縮時,引數的順序)

922 按奇偶排序陣列 II

給定乙個非負整數陣列 a,a 中一半整數是奇數,一半整數是偶數。對陣列進行排序,以便當 a i 為奇數時,i 也是奇數 當 a i 為偶數時,i 也是偶數。你可以返回任何滿足上述條件的陣列作為答案。示例 輸入 4,2,5,7 輸出 4,5,2,7 解釋 4,7,2,5 2,5,4,7 2,7,4,5...

922 按奇偶排序陣列 II 簡單

題目 於力扣 leetcode 目錄三 實現 四 執行用時 五 部分測試用例 922.按奇偶排序陣列 ii 建立與陣列 a 相同長度的新陣列用於儲存元素 定義兩個變數,用於記錄往新陣列中插入元素的索引 遍歷陣列 a,判斷當前遍歷元素的奇偶性 為奇數時,往新陣列的奇數索引上插入該元素,同時索引 2 為...

leetcode 922 按奇偶排序陣列 II

給定乙個非負整數陣列a,a 中一半整數是奇數,一半整數是偶數。對陣列進行排序,以便當a i 為奇數時,i也是奇數 當a i 為偶數時,i也是偶數。你可以返回任何滿足上述條件的陣列作為答案。示例 輸入 4,2,5,7 輸出 4,5,2,7 解釋 4,7,2,5 2,5,4,7 2,7,4,5 也會被接...