classSolution(object):defsortArrayByParityII(self, A):"""
:type A: List[int]
:rtype: List[int]
"""
a =[]
b =[]for i inrange(len(A)):if A[i]%2==0:
a.append(A[i])else:
b.append(A[i])returnlist(itertools.chain.from_iterable(zip(a,b)))# 执行用时 : 416 ms, 在Sort Array By Parity II的Python提交中击败了4.51% 的用户# 内存消耗 : 14.6 MB, 在Sort Array By Parity II的Python提交中击败了1.08% 的用户
算法说明: 建立两个空的列表,分别存储A中的奇数和偶数,然后交叉输出a和b!
代码2:
classSolution(object):defsortArrayByParityII(self, A):"""
:type A: List[int]
:rtype: List[int]
"""
A_len, i, j =len(A),0,1
s =[0]*A_len
for a in A:if a &1==0:
s[i]= a
i +=2else:
s[j]= a
j +=2return s
# 执行用时 : 456 ms, 在Sort Array By Parity II的Python提交中击败了3.72% 的用户# 内存消耗 : 13.8 MB, 在Sort Array By Parity II的Python提交中击败了1.08% 的用户
算法说明: 建立一个空列表s,然后将A中对应的奇数和偶数放在s的对应奇数和偶数位置,然后输出s!
代码3:
classSolution(object):defsortArrayByParityII(self, A):"""
:type A: List[int]
:rtype: List[int]
"""
A_len, i, j =len(A),0,1
s =[0]*A_len
while i < A_len:if A[i]%2==1:while A[j]%2==1:
j +=2
A[i],A[j]= A[j],A[i]
i +=2return A
# 执行用时 : 748 ms, 在Sort Array By Parity II的Python提交中击败了1.96% 的用户# 内存消耗 : 13.8 MB, 在Sort Array By Parity II的Python提交中击败了1.08% 的用户