按奇偶排序数组

在这里插入图片描述

class Solution:
    def sortArrayByParityII(self, A: List[int]) -> List[int]:
        n=int(len(A)/2)
        odd_index=[0]*n
        even_index=[0]*n
        count_odd=0
        count_even=0
        for i in range(0,len(A)):
            a = A[i]%2
            b = i%2
            if a == 0 and b != 0:
                
                odd_index[count_odd] = i
                count_odd = count_odd+1
            elif a != 0 and b == 0:
                even_index[count_even] = i
                count_even = count_even+1
        
        for i in range(0,count_even):
            c = A[odd_index[i]]
            A[odd_index[i]] = A[even_index[i]]
            A[even_index[i]]=c
        return A

小周版

小周老师的思路是,以下标为0,1两个位置出发,步长为2,遍历列表,比如找到下标为奇值为偶时就让另一个位置出发找标偶值奇,再交换两个下标的位置就大功告成啦!速度比我的方法要快一点

class Solution:
    def sortArrayByParityII(self, A: List[int]) -> List[int]:
        jj=0
        n = int(len(A)/2)
        for i in range(0,n):
            if A[2*i+1]%2 == 0:
                
                for j in range(jj,n):
                    if A[2*j]%2 == 1:
                        jj=j
                        a=A[2*i+1]
                        A[2*i+1] = A[2*j]
                        A[2*j] = a 
                        break
                    
        return A

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

universe_1207

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

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

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

打赏作者

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

抵扣说明:

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

余额充值