給定乙個非負整數陣列 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] 也會被接受。
長的**是我自己寫的:
class solution:
def sortarraybyparityii(self, a):
""":type a: list[int]
:rtype: list[int]
"""odd =
even=
b =
for i in a:
if i % 2 == 1:
else:
for x,y in zip(odd,even):
return b
短的是看別人寫的(3種方法):
class solution:
def sortarraybyparityii(self, a):
even, odd = [a for a in a if not a % 2], [a for a in a if a % 2]
return [even.pop() if not i % 2 else odd.pop() for i in range(len(a))]
class solution(object):
def sortarraybyparityii(self, a):
""":type a: list[int]
:rtype: list[int]
"""a.sort(key = lambda x : -(x % 2)) # sort odds in the front
for i in range(0,len(a)/2,2): # pick even indexes to the middle of the list & swap values from front and back
f = a[i]
a[i], a[-(i+1)] = a[-(i+1)], f
return a
class solution:
def sortarraybyparityii(self, a):
j = 0
for i in range(len(a)):
if a[i] % 2 == 0 and i % 2 != 0:
while a[j] % 2 == 0:
j += 2
a[i], a[j] = a[j], a[i]
return a
leetcode陣列排序
對陣列a按照偶數和奇數重新排序,使得偶數在前,奇數在後。可以返回任何一種滿足這個條件的陣列即可。given an arrayaof non negative integers,return an array consisting of all the even elements ofa,follow...
leetcode 陣列排序
碼上生花,echarts 作品展示賽正式啟動!我還是太菜了啊,基礎的排序演算法已經忘記了,今天花一晚上一定要記牢!public int sortarray int nums 快速排序 void qsort int arr,int s,int e arr l temp qsort arr,s,l qs...
LeetCode 旋轉排序陣列問題總結
前言 所謂旋轉排序陣列,就是指按照公升序排序的陣列在預先未知的某個點上進行了旋轉 例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 而leetcode上與此相關的的題共有三道,下面就具體來分析一下這三題。搜尋旋轉排序陣列 leetcode 33題 搜尋乙個給定的目標值,如...