
LeetCode:922. 按奇偶排序数组 II
解题思路2: 首先先建立两个列表,通过代码来判断出在A中位置不对的元素,然后在两个列表中分别存放奇数但索引不是奇数的元素和偶数但索引不是偶数的元素,最后在把两个元素在A中相互替换一下,输出A。 Code:
发布日期:2021-05-08 02:38:22
浏览次数:20
分类:精选文章
本文共 1122 字,大约阅读时间需要 3 分钟。
题目:
922. 按奇偶排序数组 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] 也会被接受。
提示:2 <= A.length <= 20000A.length % 2 == 00 <= A[i] <= 1000
解题思路1:
用filter()函数,提取出偶数和奇数,并形成两个列表,最后把两个列表输出。 Code:class Solution: def sortArrayByParityII(self, A: List[int]) -> List[int]: nums1 = list(filter(lambda a: a % 2 == 0, A)) nums2 = list(filter(lambda a: a % 2 == 1, A)) A[::2], A[1::2] = nums1, nums2 return A
运行结果:

class Solution: def sortArrayByParityII(self, A: List[int]) -> List[int]: B = [] C = [] for i in range(len(A)): if i % 2!= 0 and A[i] % 2 == 0: B.append(i) #在B中添加元素是偶数但索引不是偶数的数字 elif i % 2 == 0 and A[i] % 2 != 0: C.append(i) #在A中添加元素是奇数但索引不是奇数的数字 for i in range(len(B)): #遍历B中的特殊数字的个数 A[B[i]], A[C[i]] = A[C[i]], A[B[i]] #把错误的元素位置相互交换一下 return A #最后重新返回列表A
运行结果:

发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月12日 15时18分51秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
软考相关试题
2021-05-09
顺序表的操作
2021-05-09
常量表达式
2021-05-09
POD类型
2021-05-09
const与常量,傻傻分不清楚~
2021-05-09
Head First设计模式——迭代器模式
2021-05-09
MongoDB版本及存储引擎区别
2021-05-09
shell echo单行和多行文字定向写入到文件中
2021-05-09
AtCoder Beginner Contest 100 题解
2021-05-09
【数据结构】可持久化线段树初步
2021-05-09
Java高性能编程之CAS与ABA及解决方法
2021-05-09
从BIO到Netty的演变
2021-05-09
《算法导论》第二章笔记
2021-05-09
HTML节点操作
2021-05-09
HTML5新特性
2021-05-09
cmp命令
2021-05-09
一次编辑
2021-05-09
JavaScript中的链式调用
2021-05-09
day-04-列表
2021-05-09
Linux 磁盘管理(df fu fdisk mkfs mount)
2021-05-09