কম্পিউটার

পাইথনে সংখ্যাগুলিকে আরোহী বা অবরোহী ক্রমে সাজানোর জন্য সর্বনিম্ন খরচ খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, আমাদেরকে যেকোনো ক্রমানুসারে (অ্যাসেন্ডিং বা ডিসেন্ডিং) থিলিস্ট সাজানোর জন্য সর্বনিম্ন খরচ বের করতে হবে। এখানে খরচ হল যেকোনো উপাদানের পুরাতন এবং নতুন মানের মধ্যে পার্থক্যের সমষ্টি।

সুতরাং, ইনপুট যদি [2, 5, 4] এর মত হয়, তাহলে আউটপুট হবে 2।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • temp:=অ্যারের সংখ্যা অনুলিপি করুন
  • তালিকা টেম্প বাছাই করুন
  • c1:=0, c2:=0
  • n:=সংখ্যার আকার
  • আমি 0 থেকে n রেঞ্জের জন্য, কর
    • যদি nums[i] temp[i] এর মত না হয়, তাহলে
      • c1 :=c1 + |nums[i]-temp[i]|
    • যদি সংখ্যা[i] temp[n-1-i] এর মতো না হয়, তাহলে
      • c2 :=c2 + |nums[i]-temp[n-i-1]|
  • সর্বনিম্ন c1 এবং c2 ফেরত দিন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class Solution:
   def solve(self, nums):
      temp=nums.copy()
      temp.sort()
      c1=0
      c2=0
      n=len(nums)
      for i in range(n):
         if nums[i]!=temp[i]:
            c1+=abs(nums[i]-temp[i])
         if nums[i]!=temp[n-1-i]:
            c2+=abs(nums[i]-temp[n-i-1])
      return min(c1,c2)
ob = Solution()
print(ob.solve([2, 5, 4]))

ইনপুট

[2, 5, 4]

আউটপুট

2

  1. সর্বনিম্ন মানের শীর্ষ থেকে সর্বোচ্চ মানের শীর্ষবিন্দু (পাইথন) এর মধ্যে ন্যূনতম খরচের পথ খুঁজে বের করার জন্য প্রোগ্রাম

  2. পাইথনে একটি লাঠি কাটতে ন্যূনতম খরচ খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে ঘর আঁকার জন্য ন্যূনতম খরচ খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে সমস্ত পয়েন্ট সংযোগ করার জন্য সর্বনিম্ন খরচ খুঁজে বের করার প্রোগ্রাম