程序在Python中分别以升序和降序对所有偶数和奇数进行排序
假设我们有一个称为nums的数字列表,我们必须通过遵循以下条件对数组进行排序
偶数按升序排列
奇数按降序排列
偶数和奇数的相对位置不应更改。
因此,如果输入类似于[9,14,12,91,-4,5],则输出将为[91,-4,12,9,9,14,5]
为了解决这个问题,我们将遵循以下步骤-
偶数:=nums数组中的偶数项列表
赔率:=nums数组中的奇数项列表
对列表进行排序
偶数=0,奇数=0
对于范围从0到nums的索引,请执行
nums[index]:=赔率[odd_i]
奇数:=奇数+1
nums[index]:=evens[even_i]
even_i:=even_i+1
如果nums[index]mod2与0相同,则
除此以外,
返回数字
让我们看下面的实现以更好地理解-
示例
class Solution: def solve(self, nums): evens = [num for num in nums if num % 2 == 0] odds = [num for num in nums if num % 2 != 0] evens.sort() odds.sort(reverse=True) even_i = 0 odd_i = 0 for index in range(len(nums)): if nums[index] % 2 == 0: nums[index] = evens[even_i] even_i += 1 else: nums[index] = odds[odd_i] odd_i += 1 return nums ob = Solution() print(ob.solve([9, 14, 12, 91, -4, 5]))
输入值
[9, 14, 12, 91, -4, 5]
输出结果
[91, -4, 12, 9, 14, 5]