मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची और एक मान target है। हमें दो संख्याओं के जोड़े का सबसे छोटा योग ढूंढना है जो target से बड़ा हो।
उदाहरण के लिए, यदि इनपुट nums = [2, 4, 6, 10, 14] और target = 10 है, तो आउटपुट 12 होगा, क्योंकि हम 2 और 10 चुनते हैं।
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे (टू-पॉइंटर तकनीक):
numsको सॉर्ट करेंn := len(nums)answer := 10^10i := 0, j := n-1- जब तक
i < j:- यदि
nums[i] + nums[j] > target:answer := min(answer, nums[i]+nums[j])j := j-1
- अन्यथा:
i := i+1
- यदि
answerलौटाएं
उदाहरण कोड
class Solution:
def solve(self, nums, target):
nums.sort()
n = len(nums)
answer = 10**10
i, j = 0, n-1
while i < j:
if nums[i] + nums[j] > target:
answer = min(answer, nums[i] + nums[j])
j -= 1
else:
i += 1
return answer
ob = Solution()
nums = [2, 4, 6, 10, 14]
target = 10
print(ob.solve(nums, target))इनपुट
[2, 4, 6, 10, 14], 10
आउटपुट
12