Giả sử chúng ta có một danh sách các số được gọi là num, chúng ta phải sắp xếp mảng bằng cách duy trì các tiêu chí theo sau
- Các số chẵn được sắp xếp theo thứ tự tăng dần
- Các số lẻ được sắp xếp theo thứ tự giảm dần
- Vị trí tương đối của số chẵn và số lẻ không được thay đổi.
Vì vậy, nếu đầu vào là [9, 14, 12, 91, -4, 5], thì đầu ra sẽ là [91, -4, 12, 9, 14, 5]
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- evens:=danh sách các số hạng chẵn trong mảng nums
- tỷ lệ cược:=danh sách các số hạng lẻ trong mảng nums
- sắp xếp các lò danh sách
- chẵn_i:=0, lẻ_i:=0
- đối với chỉ mục trong phạm vi 0 đến kích thước là num, hãy thực hiện
- nếu nums [index] mod 2 giống 0, thì
- nums [index]:=evens [Even_i]
- Even_i:=Even_i + 1
- nếu không,
- nums [chỉ số]:=tỷ lệ cược [lẻ_i]
- lẻ_i:=lẻ_i + 1
- nếu nums [index] mod 2 giống 0, thì
- trả về số
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
class Giải pháp:def giải (self, nums):evens =[num for num in nums if num% 2 ==0] rate =[num for num in nums if num% 2! =0] evens.sort ( ) rate.sort (reverse =True) Even_i =0 retail_i =0 for index in range (len (nums)):if nums [index]% 2 ==0:nums [index] =evens [Even_i] Even_i + =1 ifĐầu vào
[9, 14, 12, 91, -4, 5]Đầu ra
[91, -4, 12, 9, 14, 5]