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