मान लीजिए हमारे पास 2n पूर्णांकों की एक सरणी है, हमें इन पूर्णांकों को n जोड़े में समूहित करना है, जैसे (a1, b1), (a2, b2), ..., (an, bn) जो 1 से n तक की सीमा में सभी i के लिए min(ai, bi) का योग यथासंभव बड़ा बनाता है। उदाहरण के लिए, यदि इनपुट [1, 4, 3, 2] है, तो आउटपुट 4 होगा। यहां n=2 है। और जोड़ों का अधिकतम योग 4 है। यह min(1, 2) + min(3, 4) = 4 है।
हल करने के चरण
- मान लें n सरणी का आकार है
- सरणी को क्रमबद्ध करें
- answer := 0
- i को 0 से n तक, 2 की छलांग के साथ रेंज में लिए
- answer := answer + array[i]
- answer वापस करें
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
class Solution(object):
def arrayPairSum(self, a):
"""
:type nums: List[int]
:rtype: int
"""
n = len(a)
a.sort()
ans = 0
for i in range(0,n,2):
ans += a[i]
return ans
ob1 = Solution()
print(ob1.arrayPairSum([1,4,3,2]))
इनपुट
[1,4,3,2]
आउटपुट
4