博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
力扣 922. 按奇偶排序数组 II
阅读量:3973 次
发布时间:2019-05-24

本文共 1272 字,大约阅读时间需要 4 分钟。

  1. 按奇偶排序数组 II

给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。

对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。

你可以返回任何满足上述条件的数组作为答案。

示例:

输入:[4,2,5,7]

输出:[4,5,2,7]
解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。

思路一:

用俩列表分别接受奇数偶数,然后分别提取

from typing import Listclass Solution:    def sortArrayByParityII(self, A: List[int]) -> List[int]:        lis1 = [] #记录奇数        lis2 = [] #记录偶数        for i in A:            if i % 2 :                lis1.append(i)                continue            lis2.append(i)        lis = []        for i in range(len(A)//2):            x = lis2[i]            y = lis1[i]            lis.append(x)            lis.append(y)        return lisprint(Solution.sortArrayByParityII(1,[4,2,5,7]))

在这里插入图片描述

思路二:
双指针,一个指偶数一个指奇数

from typing import Listclass Solution(object):    def sortArrayByParityII(self, A):        """        :type A: List[int]        :rtype: List[int]        """        pEven = 0        pOdd = 1        while pEven < len(A) and pOdd < len(A):            if A[pEven] % 2 != 0 and A[pOdd] % 2 != 1:                A[pEven], A[pOdd] = A[pOdd], A[pEven]                pEven += 2                pOdd += 2            elif A[pEven] % 2 != 0:                pOdd += 2            else:                pEven += 2        return Aprint(Solution.sortArrayByParityII(1,[4,2,5,7]))

在这里插入图片描述

转载地址:http://gyxki.baihongyu.com/

你可能感兴趣的文章
POSIX定时器timer_create()以及线程中的gettid() 和pthread_self()
查看>>
c /c++中日期和时间的获取:strftime()函数
查看>>
C语言 回调函数
查看>>
c语言swap(a,b)值交换的4种实现方法
查看>>
C++小知识点
查看>>
【转载】zedboard中PL_GPIO控制(8个sw、8个leds)
查看>>
zedboard烧写程序到FLASH,用于QSPI Flash启动
查看>>
软件工程师,你必须知道的20个常识
查看>>
常用STL算法2_查找
查看>>
常用STL算法3_排序
查看>>
常用STL算法4_拷贝和替换
查看>>
STL综合案例
查看>>
O(logn)时间复杂度求Fibonacci数列
查看>>
【转】腾讯十年运维老兵:运维团队的五个“杀手锏”
查看>>
Iterator_traits
查看>>
Zedboard中的SPI通信记录文档(已实现)
查看>>
Android 发布到google Play的app搜索不到问题的解决
查看>>
Flutter 网络请求之基于dio的简单封装
查看>>
Flutter UI基础 - 路由之Navigator详解
查看>>
Flutter UI基础 - Widgets 之 InkWell 和 Ink
查看>>