मान लीजिए कि हमारे पास ढेर की एक सूची है, हम कोई भी ढेर या ढेर ले सकते हैं और उसमें से कितने भी तत्व निकाल सकते हैं। हमें उस अधिकतम योग का पता लगाना है जिसे प्राप्त किया जा सकता है ताकि सभी ढेरों का योग मूल्य समान हो।
इसलिए, यदि इनपुट स्टैक की तरह है =[[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 है।
-
पॉप [2,2] तीसरे स्टैक से हमें मिलता है [10, 2] योग 12 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
रकम :=एक खाली नक्शा
-
स्टैक में प्रत्येक stk के लिए, करें
-
एस:=0
-
stk में प्रत्येक n के लिए, करें
-
एस:=एस + एन
-
योग [s] :=योग [s] + 1
-
-
-
उत्तर :=0
-
रकम के प्रत्येक प्रमुख मूल्य जोड़े (एस, एफ) के लिए, करें
-
अगर f>=स्टैक काउंट और s> ans, तो
-
उत्तर:=एस
-
-
-
वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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