কম্পিউটার

সাবলিস্টের আকার খুঁজে বের করার প্রোগ্রাম যেখানে পাইথনে সর্বনিম্ন A-এর পণ্য এবং A-এর আকার সর্বাধিক করা হয়


ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যার নাম nums এবং আরেকটি মান pos আছে। আমাদের সংখ্যাগুলির একটি সাবলিস্ট A খুঁজে বের করতে হবে যাতে সূচকের অবস্থান অন্তর্ভুক্ত থাকে যাতে (সর্বনিম্ন A) * (A এর আকার) সর্বাধিক করা হয় তারপর মানটি ফেরত দেয়।

সুতরাং, ইনপুট যদি nums =[-2, 2, 5, 4] pos =3 এর মত হয়, তাহলে আউটপুট হবে 8, সেরা সাবলিস্ট হিসাবে [5, 4], কারণ (5, 4) =4 এবং এর আকার হল 2 আমাদের কাছে 4 * 2 =8।

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

উদাহরণ

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

class Solution:
   def solve(self, A, pos):
      NINF = float("-inf")
      ans = m = A[pos]
      i = pos
      j = pos
      for _ in range(len(A) - 1):
         left = A[i - 1] if i - 1 >= 0 else NINF
         right = A[j + 1] if j + 1 < len(A) else NINF
         if left >= right:
            i -= 1
            m = min(m, A[i])
         else:
            j += 1
            m = min(m, A[j])
         ans = max(ans, m * (j - i + 1))
      return ans
ob = Solution()
nums = [-2, 2, 5, 4]
pos = 3
print(ob.solve(nums, pos))

ইনপুট

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

আউটপুট

8

  1. পাইথনে KLength সাবলিস্ট মুছে ফেলার পরে ন্যূনতম প্রশস্ততা খুঁজে বের করার প্রোগ্রাম

  2. দুটি তালিকার কার্টেসিয়ান পণ্য খুঁজে পেতে পাইথন প্রোগ্রাম

  3. পাইথনে পাথর মার্জ করার জন্য সর্বনিম্ন খরচ খুঁজে বের করার জন্য প্রোগ্রাম

  4. একটি গ্রাফের বৃহত্তম চক্রের সর্বনিম্ন আকার খুঁজে বের করার জন্য প্রোগ্রাম (পাইথন)