मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है और एक लक्ष्य मान भी है, हमें nums में संख्याओं के सबसे बड़े जोड़े का योग ढूंढना है जिसका योग अधिकतम (target - 1) है।
इसलिए, यदि इनपुट है nums = [8, 3, 4, 9, 2], target = 8, तो आउटपुट होगा 7, क्योंकि 8 से कम सबसे बड़े जोड़े का योग 4 + 3 = 7 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
numsसूची को सॉर्ट करेंp1 := 0p2 := numsका आकार - 1m := -inf- जब
p1 < p2, करें:- यदि
nums[p1] + nums[p2] < target, तो:m := max(m, nums[p1] + nums[p2])p1 := p1 + 1
- अन्यथा:
p2 := p2 - 1
- यदि
mलौटाएं
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
import math
def solve(nums, target):
nums.sort()
p1 = 0
p2 = len(nums) - 1
m = -math.inf
while p1 < p2:
if nums[p1] + nums[p2] < target:
m = max(m, nums[p1] + nums[p2])
p1 += 1
else:
p2 -= 1
return m
nums = [8, 3, 4, 9, 2]
target = 8
print(solve(nums, target))
इनपुट
[8, 3, 4, 9, 2], 8
आउटपुट
7