leetcode922----按奇偶排序数组

Posted RounieJane

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode922----按奇偶排序数组相关的知识,希望对你有一定的参考价值。

题目描述:

给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。
对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。
你可以返回任何满足上述条件的数组作为答案。
 
 1 def sortArray(A):
 2     odd = []
 3     even = []
 4     array = []
 5     for i in A:
 6         if i % 2 == 0:
 7             even.append(i)
 8         else:
 9             odd.append(i)
10 
11     for i in range(len(even)):
12         array.append(even[i])
13         array.append(odd[i])
14 
15     return array
16 
17 
18 print("==============测试sortArray(A)=========")
19 A = [2, 31, 4, 6, 9, 5]
20 array = sortArray(A)
21 print("array=", array)
22 
23 
24 def sortArray(A):
25     ‘‘‘
26 
27     :param A:
28     :return:
29     ‘‘‘
30     array1 = [0] * len(A)
31     t = 0
32     q = 1
33     for i in A:
34         if i % 2 == 0:
35             array1[t] = i
36             t = t + 2
37         else:
38             array1[q] = i
39             q = q + 2
40 
41     return array1
42 
43 
44 print("============测试sortArray1()===========")
45 array1 = sortArray(A)
46 print(array=, array1)
47 
48 
49 def sortArray2(A):
50     ‘‘‘
51     使用切片
52     :param A:
53     :return:
54     ‘‘‘
55     size = len(A)
56     array2 = [0] * size
57     array2[0::2] = [i for i in A if i % 2 == 0]
58     array2[1::2] = [i for i in A if i % 2 != 0]
59 
60     return array2
61 
62 
63 print(----------测试sortArray2()------------)
64 array2 = sortArray2(A)
65 print("array2=", array2)
66 
67 
68 def sortArray3(A):
69     ‘‘‘
70 
71     :param A:
72     :return:
73     ‘‘‘
74     size = len(A)
75     j = 1
76     for i in range(0, size, 2):
77         if A[i] % 2:  # 奇数
78             while A[j] % 2:
79                 j += 2
80 
81             A[i], A[j] = A[j], A[i]
82 
83     return A
84 
85 
86 print(----------测试sortArray3()------------)
87 array3 = sortArray3(A)
88 print("array3=", array3)

输出:

==============测试sortArray(A)=========
array= [2, 31, 4, 9, 6, 5]
============测试sortArray1()===========
array= [2, 31, 4, 9, 6, 5]
----------测试sortArray2()------------
array2= [2, 31, 4, 9, 6, 5]
----------测试sortArray3()------------
array3= [2, 31, 4, 9, 6, 5]

 

以上是关于leetcode922----按奇偶排序数组的主要内容,如果未能解决你的问题,请参考以下文章

leetcode922----按奇偶排序数组

leetcode922----按奇偶排序数组

LeetCode-922. 按奇偶排序数组 II

力扣(LeetCode)922. 按奇偶排序数组 II

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

922. 按奇偶排序数组 II