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----按奇偶排序数组的主要内容,如果未能解决你的问题,请参考以下文章