मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और एक लक्ष्य मान भी है, हमें संख्याओं की सबसे बड़ी जोड़ी का योग ज्ञात करना है जिसका योग अधिकतम (लक्ष्य -1) है।
इसलिए, यदि इनपुट संख्या =[8, 3, 4, 9, 2] लक्ष्य =8 की तरह है, तो आउटपुट 7 होगा, क्योंकि 8 से कम संख्याओं की सबसे बड़ी जोड़ी का योग 4 + 3 =7 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- सूची संख्या क्रमित करें
- p1 :=0
- p2 :=अंकों का आकार - 1
- एम :=-इन्फ
- जबकि p1
- यदि अंक [p1] + अंक [p2] <लक्ष्य, तो
- m :=अधिकतम m और (nums[p1] + nums[p2])
- p1 :=p1 + 1
- अन्यथा,
- p2 :=p2 - 1
- यदि अंक [p1] + अंक [p2] <लक्ष्य, तो
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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