第三十天 Sort Array By Parity
2018-09-19 本文已影响8人
业余马拉松选手
尽管今天状态很不好
该做的事情还有很多
但题目该刷还是要刷
https://leetcode-cn.com/problems/sort-array-by-parity/description/
选择没那么多了,这道题的意思很直接哦,就是把偶数放前面,奇数放后面
不过我并没有用到排序的这个条件,并不是给的最优解了
方法很直接
就是两个“指针”,分别指向第一个和最后一个
如果都是奇数,就把为尾部的向前,因为当前这个位置放奇数肯定没问题
如果第一个是奇数,尾巴的是偶数,那么也很直接,就两个数字调换一下哦,两个指针都分别往中间靠一下
如果第一个数是偶数,那么就把头指针继续往后一个即可
class Solution(object):
def sortArrayByParity(self, A):
"""
:type A: List[int]
:rtype: List[int]
"""
i = 0
j = len(A)-1
while i < j:
if A[i] % 2 == 1 and A[j] % 2 == 0:
A[i],A[j] = A[j],A[i]
i+=1
j-=1
elif A[i] %2 == 1 and A[j] % 2 == 1:
j-=1
else:
i+=1
return A