मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और एक अन्य मूल्य लक्ष्य है, हमें उन उप-सूची की संख्या ज्ञात करनी है जिनका योग लक्ष्य के समान है।
इसलिए, यदि इनपुट संख्या =[3, 0, 3] लक्ष्य =3 की तरह है, तो आउटपुट 4 होगा, क्योंकि हमारे पास ये सबलिस्ट हैं जिनका योग 3:[3], [3, 0], [0, है। 3], [3]।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- अस्थायी:=एक खाली नक्शा
- अस्थायी[0] :=1
- s :=0
- उत्तर:=0
- मैं के लिए 0 से लेकर अंकों के आकार तक, करें
- s :=s + nums[i]
- comp :=s - लक्ष्य
- यदि COMP अस्थायी है, तो
- उत्तर:=उत्तर + अस्थायी[comp]
- अस्थायी[s] :=अस्थायी[s] + 1
- वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण कोड
from collections import defaultdict class Solution: def solve(self, nums, target): temp = defaultdict(int) temp[0] = 1 s = 0 ans = 0 for i in range(len(nums)): s += nums[i] comp = s - target if comp in temp: ans += temp[comp] temp[s] += 1 return ans ob = Solution() nums = [3, 0, 3] target = 3 print(ob.solve(nums, target))
इनपुट
[3, 0, 3], 3
आउटपुट
4