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

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


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