ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, আমাদের এটিকে একই আকারের দুটি অংশে ভাগ করতে হবে যেখানে প্রতিটি তালিকার মধ্যকের মধ্যে পরম পার্থক্য যতটা সম্ভব ছোট এবং আমাদের এই পার্থক্যটি খুঁজে বের করতে হবে। আমাদের মনে রাখতে হবে যে এখানে সংখ্যার দৈর্ঘ্য / 2 বিজোড় হবে।
সুতরাং, ইনপুট যদি [2, 10, 8, 5, 4, 7] এর মত হয়, তাহলে আউটপুট হবে 2, যেমন আমরা দুটি তালিকা তৈরি করতে পারি যেমন [2,5,10] এবং [4,7,8] , তারপর মধ্যমা হল 5 এবং 7, তাদের পার্থক্য হল 2৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- তালিকা সংখ্যা সাজান
- m :=সংখ্যার আকারের ভাগফল/2
- রিটার্ন |সংখ্যা[m] - সংখ্যা[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