สมมติว่าเรามีรายการของตัวเลขที่เรียกว่า nums เราต้องแบ่งออกเป็นสองส่วนที่มีขนาดเท่ากัน โดยที่ความแตกต่างระหว่างค่ามัธยฐานของแต่ละรายการมีค่าน้อยที่สุด และเราต้องหาความแตกต่างนี้ เราต้องจำไว้ว่าความยาวของ nums / 2 จะเป็นเลขคี่
ดังนั้นหากอินพุตเป็น [2, 10, 8, 5, 4, 7] ผลลัพธ์จะเป็น 2 เนื่องจากเราสามารถสร้างสองรายการเช่น[2,5,10] และ [4,7,8] แล้วค่ามัธยฐานคือ 5 และ 7 ส่วนต่างคือ 2
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- เรียงเลขรายการ
- m :=ผลหารของขนาดของ nums/2
- ส่งคืน |nums[m] - nums[m-1]|
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
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]))
อินพุต
[2, 10, 8, 5, 4, 7]
ผลลัพธ์
2