কম্পিউটার

পাইথনে সর্বাধিক পণ্য সাবারে


ধরুন আমাদের কাছে একটি পূর্ণসংখ্যার অ্যারে আছে যাকে nums বলা হয়, আমাদেরকে একটি অ্যারের (অন্তত একটি সংখ্যা ধারণ করে) এর মধ্যে সংলগ্ন সাবয়ারে খুঁজে বের করতে হবে যার সবচেয়ে বড় পণ্য রয়েছে। সুতরাং যদি অ্যারেটি [2,3,-2,4] হয়, তাহলে আউটপুট হবে 6, যেহেতু সংলগ্ন সাব্যারে [2,3]-এর সর্বাধিক পণ্য রয়েছে৷

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

  • max_list :=আকার সংখ্যার তালিকা, এবং 0 দিয়ে পূরণ করুন
  • min_list :=আকার সংখ্যার তালিকা, এবং 0 দিয়ে পূরণ করুন
  • সর্বোচ্চ_তালিকা[0] :=সংখ্যা[0] এবং কম_তালিকা[0] :=সংখ্যা[0]
  • আমি 1 থেকে সংখ্যার দৈর্ঘ্যের মধ্যে
    • max_list[i] =max_list[i - 1]*nums[i], min_list[i - 1]*nums[i] এবং nums[i]
    • min_list[i] =minof min_list[i - 1]*nums[i], nums[i], max_list[i - 1]*nums[i]
  • max_list এর সর্বোচ্চ ফেরত দিন

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

উদাহরণ

class Solution(object):
   def maxProduct(self, nums):
      max_list = [0] * len(nums)
      min_list = [0] * len(nums)
      max_list[0] = nums[0]
      min_list[0] = nums[0]
      for i in range(1,len(nums)):
         max_list[i] = max(max(max_list[i-1]*nums[i],min_list[i-1]*nums[i]),nums[i])
         min_list[i] = min(min(min_list[i-1]*nums[i],nums[i]),max_list[i-1]*nums[i])
      return max(max_list)
ob1 = Solution()
print(ob1.maxProduct([2,3,-2,4,-5,-6,2]))

ইনপুট

[2,3,-2,4,-5,-6,2]

আউটপুট

240

  1. পাইথনে সর্বোচ্চ গড় সাবট্রি

  2. পাইথনে সর্বাধিক অদলবদল

  3. পাইথনে সেলফ ছাড়া অ্যারের পণ্য

  4. পাইথনে সর্বোচ্চ সাবারে