Giả sử chúng ta có một danh sách các số được gọi là num, chúng ta phải chia nó thành hai phần giống nhau ở đó sự khác biệt tuyệt đối giữa trung vị của mỗi danh sách càng nhỏ càng tốt và chúng ta phải tìm ra sự khác biệt này. Chúng ta phải lưu ý rằng ở đây độ dài của nums / 2 sẽ là số lẻ.
Vì vậy, nếu đầu vào là [2, 10, 8, 5, 4, 7], thì đầu ra sẽ là 2, vì chúng ta có thể tạo hai danh sách như [2,5,10] và [4,7,8] , khi đó trung bình là 5 và 7, hiệu số của chúng là 2.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- sắp xếp các số trong danh sách
- m:=thương số của kích thước nums / 2
- return | nums [m] - nums [m-1] |
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
class Solution: def solve(self, nums): nums.sort() m = len(nums)//2 return abs(nums[m] - nums[m-1]) ob = Solution() print(ob.solve([2, 10, 8, 5, 4, 7]))
Đầu vào
[2, 10, 8, 5, 4, 7]
Đầu ra
2