मान लीजिए हमारे पास एक सरणी nums है, हमें जांचना है कि क्या सरणी में कोई ऐसा तत्व है जिसका मान बाकी सभी तत्वों के योग के बराबर है।
उदाहरण के लिए, यदि nums = [3, 2, 10, 4, 1] है, तो आउटपुट True होगा, क्योंकि 10 = (3 + 2 + 4 + 1)।
हल करने का तरीका
- freq := एक खाली मैप
- total := 0
- सभी तत्वों की आवृत्ति गिनें और total निकालें
- यदि total सम है:
- यदि freq[total/2] शून्येतर है, तो True लौटाएं
- False लौटाएं
तर्क: यदि कोई तत्व x बाकी का योग है, तो total = x + x = 2x, यानी x = total/2।
उदाहरण कोड
from collections import defaultdict
def solve(nums):
freq = defaultdict(int)
total = 0
for i in range(len(nums)):
freq[nums[i]] += 1
total += nums[i]
if total % 2 == 0:
if freq[total // 2]:
return True
return False
nums = [3, 2, 10, 4, 1]
print(solve(nums))
इनपुट
[3, 2, 10, 4, 1]
आउटपुट
True