Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมแบ่งรายการตัวเลขเพื่อให้ความต่างของค่ามัธยฐานน้อยที่สุดใน Python

สมมติว่ามีรายการตัวเลขชื่อ 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