leetcode922 Sort Array By Parity II

 1 """
 2 Given an array A of non-negative integers, half of the integers in A are odd, and half of the integers are even.
 3 Sort the array so that whenever A[i] is odd, i is odd; and whenever A[i] is even, i is even.
 4 You may return any answer array that satisfies this condition.
 5 Example 1:
 6 Input: [4,2,5,7]
 7 Output: [4,5,2,7]
 8 Explanation: [4,7,2,5], [2,5,4,7], [2,7,4,5] would also have been accepted.
 9 """
10 """
11 提供三种方法,传送门:https://blog.csdn.net/fuxuemingzhu/article/details/83045735
12 1.直接使用两个数组分别存放奇数和偶数,然后结果就是在这两个里面来回的选取就好了。
13 """
14
15 class Solution1:
16     def sortArrayByParityII(self, A):
17         odd = [x for x in A if x % 2 == 1]  #奇数入栈
18         even = [x for x in A if x % 2 == 0] #偶数入栈
19         res = []
20         iseven = True  #!!!判断奇偶数
21         while odd or even:
22             if iseven:
23                 res.append(even.pop())  #偶数写入结果
24             else:
25                 res.append(odd.pop())   #奇数写入结果
26             iseven = not iseven   #!!!下一个变为偶数
27         return res
28
29 """
30 先对A进行排序,使得偶数都在前面,奇数都在后面,
31 然后每次从前从后各取一个数,然后放到结果里就好了
32 """
33 class Solution2:
34     def sortArrayByParityII(self, A):
35         A.sort(key=lambda x: x % 2)#!!!此方法可以将偶数防前面,奇数放后面 [0, 1]排序
36         N = len(A)
37         res = []
38         for i in range(N // 2):
39             #" / "就表示 浮点数除法,返回浮点结果;" // "表示整数除法。
40             res.append(A[i])  #添加偶数
41             res.append(A[N - 1 - i]) #添加奇数
42         return res
43
44 """
45 先把结果数组创建好,
46 然后使用奇偶数两个变量保存位置,
47 然后判断A中的每个数字是奇数还是偶数,
48 对应放到奇偶位置就行了。
49 """
50 class Solution3:
51     def sortArrayByParityII(self, A):
52         """
53         :type A: List[int]
54         :rtype: List[int]
55         """
56         N = len(A)
57         res = [0] * N
58         even, odd = 0, 1
59         for a in A:
60             if a % 2 == 1:
61                 res[odd] = a
62                 odd += 2  #!!!关键点,每次加2
63             else:
64                 res[even] = a
65                 even += 2  #!!!
66         return res

原文地址:https://www.cnblogs.com/yawenw/p/12271061.html

时间: 2024-09-28 16:18:38

leetcode922 Sort Array By Parity II的相关文章

【LEETCODE】42、922. Sort Array By Parity II

package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * @ClassName: SortArrayByParityII * @Author: xiaof * @Description: 922. Sort Array By Parity II * Given an array A of non-negative integers, half of the

Sort Array By Parity II LT922

Given an array A of non-negative integers, half of the integers in A are odd, and half of the integers are even. Sort the array so that whenever A[i] is odd, i is odd; and whenever A[i] is even, i is even. You may return any answer array that satisfi

922. Sort Array By Parity II

Given an array A of non-negative integers, half of the integers in A are odd, and half of the integers are even. Sort the array so that whenever A[i] is odd, i is odd; and whenever A[i] is even, i is even. You may return any answer array that satisfi

LeetCode 922 Sort Array By Parity II 解题报告

题目要求 Given an array A of non-negative integers, half of the integers in A are odd, and half of the integers are even. Sort the array so that whenever A[i] is odd, i is odd; and whenever A[i] is even, i is even. You may return any answer array that sa

LeetCode 922. Sort Array By Parity II (按奇偶排序数组 II)

题目标签:Sort 利用两个指针,在偶数位置上找到第一个奇数:在奇数位置上找到第一个偶数,然后互相转换数字. 具体看code. Java Solution: Runtime:  2ms, faster than 99.61% Memory Usage: 42.9MB, less than 29.63% 完成日期:03/06/2020 关键点:two pointers class Solution { public int[] sortArrayByParityII(int[] A) { int

[leetcode][easy][Array][905][Sort Array By Parity]

Sort Array By Parity 题目链接 题目描述 给定一个非负整型数组A,返回一个数组,数组中靠前的位置是A中的偶数,靠后的位置是A中的奇数.偶数范围内顺序不限,奇数也是. 约定 1 <= A.length <= 5000 0 <= A[i] <= 5000 示例 Input: [3,1,2,4] Output: [2,4,3,1] The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepte

LeetCode 905. Sort Array By Parity

905. Sort Array By Parity Given an array A of non-negative integers, return an array consisting of all the even elements of A, followed by all the odd elements of A. You may return any answer array that satisfies this condition. Example 1: Input: [3,

905. Sort Array By Parity

题目来源: https://leetcode.com/problems/sort-array-by-parity/ 自我感觉难度/真实难度: easy/easy 题意: 把列表里的偶数放在前面,奇数放在后面 分析: 自己的代码: class Solution(object): def sortArrayByParity(self, A): """ :type A: List[int] :rtype: List[int] """ c=[] b=[]

【LEETCODE】41、905. Sort Array By Parity

package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * @ClassName: SortArrayByParity * @Author: xiaof * @Description: 905. Sort Array By Parity * Given an array A of non-negative integers, return an array