905 sort-array-by-parity

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution:
    def sortArrayByParity(self, A: List[int]) -> List[int]:
        first = 0
        last = len(A)-1
        while first<last:
            m = A[first]
            n = A[last]
            if (m&1 is 1) and (n&1 is 0):
                A[first],A[last] = A[last],A[first]
                first += 1
                last -= 1
            elif m&1 is 0:
                first += 1
            elif n&1 is 1:
                last -= 1
         
        return A

  88ms,13.9M

优化一:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution:
    def sortArrayByParity(self, A: List[int]) -> List[int]:
        first = 0
        last = len(A)
        for i in range(last):
            a = A[i]
            if a&1==0:
                first += 1
            else:
                for j in range(last,first,-1):
                    if A[j-1]&1==0:
                        A[first],A[j-1] = A[j-1],A[first]
                        last = j
                        first += 1
                        break
        return A

  80ms,14M

 

posted @   bluedream1000  阅读(133)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示