ধরুন আমাদের কাছে স্ট্যাকের একটি তালিকা আছে, আমরা যেকোনো স্ট্যাক বা স্ট্যাক নিতে পারি এবং এটি থেকে যে কোনো সংখ্যক উপাদান পপ করতে পারি। আমাদেরকে এমন সর্বাধিক যোগফল খুঁজে বের করতে হবে যেটি এমনভাবে অর্জন করা যেতে পারে যে সমস্ত স্ট্যাকের একই যোগফলের মান থাকে।
সুতরাং, যদি ইনপুটটি স্ট্যাকের মত হয় =[[3, 4, 5, 6], [5, 6, 1, 4, 4], [10, 2, 2, 2]], তাহলে আউটপুট হবে 12, যেহেতু আমরা −
এর মত অপারেশন করতে পারি-
পপ [6] প্রথম স্ট্যাক থেকে আমরা [3, 4, 5] পাব যোগফল 12।
-
পপ [4,4] দ্বিতীয় স্ট্যাক থেকে আমরা [5, 6, 1] পাব যোগফল 12।
-
তৃতীয় স্ট্যাক থেকে আমরা [10, 2] পাই [2,2] যোগফল 12।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
যোগফল :=একটি খালি মানচিত্র
-
স্ট্যাকের প্রতিটি stk-এর জন্য, করুন
-
s :=0
-
stk-এ প্রতিটি n-এর জন্য, করুন
-
s :=s + n
-
যোগফল[গুলি] :=যোগফল[গুলি] + 1
-
-
-
উত্তর :=0
-
যোগফলের প্রতিটি মূল মানের জোড়া (s, f) এর জন্য, করুন
-
যদি f>=স্ট্যাক গণনা এবং s> উত্তর, তাহলে
-
উত্তর :=s
-
-
-
উত্তর ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
from collections import defaultdict class Solution: def solve(self, stacks): sums = defaultdict(int) for stk in stacks: s = 0 for n in stk: s += n sums[s] += 1 ans = 0 for s, f in sums.items(): if f >= len(stacks) and s > ans: ans = s return ans ob1 = Solution() stacks = [ [3, 4, 5, 6], [5, 6, 1, 4, 4], [10, 2, 2, 2] ] print(ob1.solve(stacks))
ইনপুট
stacks = [ [3, 4, 5, 6], [5, 6, 1, 4, 4], [10, 2, 2, 2] ]
আউটপুট
12