मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और अंकों में तत्वों को आरोही क्रम में क्रमबद्ध किया जाता है। हमारे पास एक और मान k भी है, हमें यह जांचना है कि सूची से लिए गए किन्हीं दो तत्वों का योग k है या नहीं। संख्याएँ ऋणात्मक या 0 भी हो सकती हैं। हमें इस समस्या को निरंतर मात्रा में अंतरिक्ष उपयोग में हल करना होगा।
इसलिए, यदि इनपुट संख्या =[-8, -3, 2, 7, 9] k =4 की तरह है, तो आउटपुट सही होगा, क्योंकि यदि हम 7 और -3 लेते हैं, तो योग 7 + (- 3) =4, जो k के समान है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- मैं :=0
- j :=अंकों का आकार - 1
- जबकि मैं <जे, करते हैं
- cur_sum :=nums[i] + nums[j]
- यदि cur_sum k के समान है, तो
- सही लौटें
- अन्यथा जब cur_sum
- i :=i + 1
- अन्यथा,
- j :=j-1
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums, k): i = 0 j = len(nums) - 1 while i < j: cur_sum = nums[i] + nums[j] if cur_sum == k: return True elif cur_sum < k: i += 1 else: j -= 1 return False nums = [-8, -3, 2, 7, 9] k = 4 print(solve(nums, k))
इनपुट
[-8, -3, 2, 7, 9], 4
आउटपुट
True