मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है। हमें सूचकांक जोड़े की संख्या ज्ञात करनी है i, j, जहां i
इसलिए, यदि इनपुट संख्या =[1, 2, 6, 3, 5] की तरह है, तो आउटपुट 3 होगा, क्योंकि तीन जोड़े योग हैं जैसे (6, 2):योग 8, (5, 3) है :योग 8 है और (1, 3) योग 4 है
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
रेस :=0
-
c :=एक नक्शा जिसमें मौजूद प्रत्येक तत्व की आवृत्तियाँ होती हैं
-
अंकों में प्रत्येक x के लिए, करें
-
j के लिए 0 से 31 की सीमा में, करें
-
रेस :=रेस + सी[(2^जे) - एक्स]
-
-
सी [एक्स]:=सी [एक्स] + 1 पी>
-
-
रिटर्न रेस
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें
from collections import Counter def solve(nums): res, c = 0, Counter() for x in nums: for j in range(32): res += c[(1 << j) - x] c[x] += 1 return res nums = [1, 2, 6, 3, 5] print(solve(nums))
इनपुट
[1, 2, 6, 3, 5]
आउटपुट
3