मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और दूसरा मान k है, हमें यह जांचना होगा कि क्या हम सूची में तीन अद्वितीय तत्व ढूंढ सकते हैं जिनका योग k है।
इसलिए, यदि इनपुट संख्या =[11, 4, 6, 10, 5, 1] k =20 की तरह है, तो आउटपुट सही होगा, क्योंकि हमारे पास संख्याएँ [4,6,10] हैं जिनका योग 20 है। /पी>
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
सूची संख्या क्रमित करें
-
l :=0, r :=अंकों का आकार - 1
-
जबकि l
-
t :=k - अंक[l] - अंक[r]
-
यदि अंक [r − 1]
-
एल :=एल + 1
-
लूप से बाहर आएं
-
-
l + 1 से r की श्रेणी में m के लिए, करें
-
अगर अंक [एम]> टी, तो
-
r :=r − 1
-
लूप से बाहर आएं
-
-
अगर nums[m] t के समान है, तो
-
सही लौटें
-
-
-
-
झूठी वापसी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, nums, k): nums.sort() l, r = 0, len(nums) − 1 while l < r − 1: t = k − nums[l] − nums[r] if nums[r − 1] < t: l += 1 continue for m in range(l + 1, r): if nums[m] > t: r −= 1 break if nums[m] == t: return True return False ob1 = Solution() nums = [11, 4, 6, 10, 5, 1] k = 20 print(ob1.solve(nums, k))
इनपुट
[11, 4, 6, 10, 5, 1], 20
आउटपुट
True