मान लीजिए कि हमारे पास एक सरणी संख्या है और लक्ष्य नामक एक अन्य मान है। अब हमें गैर-रिक्त गैर-अतिव्यापी उपसरणियों की अधिकतम संख्या ज्ञात करनी है जैसे कि प्रत्येक भिन्न उपसरणी में मानों का योग लक्ष्य के समान हो।
इसलिए, यदि इनपुट संख्या =[3,2,4,5,2,1,5] लक्ष्य =6 की तरह है, तो आउटपुट 2 होगा क्योंकि दो उप-सरणी हैं [2,4] और [1,5] जिसका योग 6 के बराबर है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
t :=एकल तत्व 0 के साथ एक नया सेट
-
अस्थायी:=0
-
उत्तर:=0
-
प्रत्येक के लिए मैं अंकों में, करता हूं
-
अस्थायी:=अस्थायी + मैं
-
पिछला:=अस्थायी - लक्ष्य
-
अगर पिछला टी में है, तो
-
उत्तर:=उत्तर + 1
-
t:=एकल तत्व अस्थायी के साथ एक नया सेट
-
-
अन्यथा,
-
टी में अस्थायी डालें
-
-
-
वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def solve(nums, target): t = set([0]) temp = 0 ans=0 for i in nums: temp += i prev = temp-target if prev in t: ans += 1 t = set([temp]) else: t.add(temp) return ans nums = [3,2,4,5,2,1,5] target = 6 print(solve(nums, target))
इनपुट
"poput","vwput",9
आउटपुट
2