給定乙個非負整數陣列 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 也會被接...