ধরুন আমাদের কাছে nums নামক একটি অ্যারে আছে, আমাদেরকে একটি অ্যারের মধ্যে একটি সংলগ্ন সাবয়ারের উপাদানগুলির গুণফল খুঁজে বের করতে হবে (অন্তত একটি সংখ্যা রয়েছে) যার মধ্যে সবচেয়ে বড় পণ্য রয়েছে। সুতরাং যদি অ্যারেটি [1,9,2,0,2,5] হয়, তাহলে আউটপুট হবে 18, যেহেতু সংলগ্ন সাবয়ারে [1,9,2]-এর সর্বাধিক পণ্য রয়েছে৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- max_list :=আকার সংখ্যার তালিকা, এবং 0 দিয়ে পূরণ করুন
- min_list :=আকার সংখ্যার তালিকা, এবং 0 দিয়ে পূরণ করুন
- min_list :=আকার সংখ্যার তালিকা, এবং 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([1,9,2,0,2,5]))
ইনপুট
[1,9,2,0,2,5]
আউটপুট
18