[leetcode] 905. Sort Array By Parity

Description

Given an array A of non-negative integers, return an array consisting of all the even elements of A, followed by all the odd elements of A.

You may return any answer array that satisfies this condition.

Example 1:

Input: [3,1,2,4]
Output: [2,4,3,1]
The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.

Note:

  1. 1 <= A.length <= 5000
  2. 0 <= A[i] <= 5000

分析

题目的意思是:这是一道easy的题目,需要把偶数放在前面,奇数放在后面,我的方法就是首尾进行遍历。也accept了,看标准答案了之后,发现了另一种解法,非常的简洁,我这里也分享一下,用的是lambda表达式,真是厉害了

代码一

class Solution:
    def sortArrayByParity(self, A: List[int]) -> List[int]:
        n=len(A)
        i=0
        j=n-1
        while(i<j):
            while(i<j and A[i]%2==0):
                i+=1
            while(i<j and A[j]%2==1):
                j-=1
            t=A[i]
            A[i]=A[j]
            A[j]=t
            i+=1
            j-=1
        return A
        

代码二

class Solution:
    def sortArrayByParity(self, A: List[int]) -> List[int]:
        A.sort(key=lambda x:x%2)
        return A

参考文献

[LeetCode] Approach 1: Sort

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农民小飞侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值