算法编程9:按奇偶排序数组(905)

题目描述:

给定一个非负整数数组,将数组中的奇数放在偶数后面。

此题有两种解法:

法一:

思路:将偶数放在一个数组,奇数放在一个数组,然后将两数组合并。

python实现代码:

def sortArrayByParity(A):
    j=0   #列表索引值,从0开始
    a=[]  #存放偶数的数组
    b=[]  #存放奇数的数组
    while j<=len(A)-1:
        if A[j]%2==0:#判断偶数条件
            a.append(A[j])
        elif A[j]%2==1:#判断奇数条件
            b.append(A[j])
        j+=1
    return a+b #将偶数放在前面,奇数放在后面,合并两数组

leetcode执行结果:

法二:

思路,将奇数删除并添加到列表后。

python实现代码:

    def sortArrayByParity(self, A: List[int]) -> List[int]:
        i=0  #控制列表中第几个数字
        j=0  #控制读取列表中第几个数字
        while j<len(A)-1:
            ai=A[i]
            if ai%2==0:
                i+=1
            elif ai%2==1:
                A.remove(ai) #如果是奇数,将奇数删除并添加到列表后,如果是偶数,不管
                A.append(ai)
            j+=1
        return A

LeetCode执行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值