LeetCode 陣列排序問題

2021-08-30 17:56:03 字數 1415 閱讀 1693

給定乙個非負整數陣列 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題 搜尋乙個給定的目標值,如...