第三十天 Sort Array By Parity

尽管今天状态很不好

该做的事情还有很多

但题目该刷还是要刷

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

你可能感兴趣的:(第三十天 Sort Array By Parity)