কম্পিউটার টিউটোরিয়াল

পাইথনে অ্যারে উপাদানগুলো সমান করার জন্য ন্যূনতম মুভ (Minimum Moves to Equal Array Elements II)

মনে করুন একটি নন-এম্পטי পূর্ণসংখ্যা অ্যারে আছে; আমাদের জানতে হবে ন্যূনতম কতগুলো মুভ দরকার সকল অ্যারে উপাদান সমান করার জন্য, যেখানে একটি মুভ হল একটি নির্বাচিত উপাদানকে ১ বা বা ১ কমানো। যেমন অ্যারে [1, 2, 3] হলে আউটপুট হবে ২, কারণ ১ কে ২ করা হবে এবং ৩ কে ২ করা হবে।

এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব:

  • অ্যারে nums সর্ট করুন
  • counter ০ সেট করুন
  • for i in nums
    • counter := counter + absolute(i - nums[len(nums)//2])
  • counter রিটার্ন করুন

উদাহরণ (পাইথন)

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝতে:

class Solution:
    def minMoves2(self, nums):
        nums.sort()
        counter = 0
        for i in nums:
            counter += abs(i - nums[len(nums)//2])
        return counter

ob1 = Solution()
print(ob1.minMoves2([2,5,3,4]))

ইনপুট

[2,5,3,4]

আউটপুট

4

  1. পাইথনে Product of Array Except Self (নিজের বাদে সব উপাদানের গুণফল)

  2. পাইথনে অ্যারে সব উপাদান সমান করার জন্য অপারেশনের সংখ্যা

  3. পাইথনে অ্যারেতে ডিস্টিনক্ট এলিমেন্ট গণনা

  4. পাইথনে Bisect - অ্যারে বাইсекশন অ্যালগরিদম