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

পাইথনে সংলগ্ন সাবঅ্যারের সর্বোচ্চ গুণফল খুঁজে বের করার প্রোগ্রাম


মান ল করুন nums নামের একটি অ্যারে, আমাদের এমন একটি সংলগ্ন সাবঅ্যারের (কমপক্ষে একটি সংখ্যা থাকবে) গুণফল খুঁজে বের করতে হবে যেটির গুণফল সর্বোচ্চ। যেমন অ্যারে [1,9,2,0,2,5] হলে, আউটপুট হবে ১৮, কারণ সংলগ্ন সাবঅ্যারে [1,9,2]-র গুণফল সর্বোচ্চ।

এটি সমাধান করতে আমরা নিম্নলিখিত ধাপগুলি অনুসরণ করব:

  • max_list := nums আকারের একটি তালিকা, ০ দিয়ে ভরা
  • min_list := nums আকারের একটি তালিকা, ০ দিয়ে ভরা
  • max_list[0] = nums[0], min_list[0] = nums[0]
  • i কে ১ থেকে nums-এর দৈর্ঘ্য পর্যন্ত লুপ চালান:
    • max_list[i] = max(max_list[i-1]*nums[i], min_list[i-1]*nums[i], nums[i])
    • min_list[i] = min(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([1,9,2,0,2,5]))

ইনপুট

[1,9,2,0,2,5]

আউটপুট

18

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

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

  3. পাইথনে সব সन्नিহিত সাবলিস্টের যোগফলের যোগফল বের করার প্রোগ্রাম

  4. পাইথনে Maximum Product Subarray (সর্বাধিক গুণফলযুক্ত সাবঅ্যারে)