मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और दूसरा मान k है, तो हमें अंकों (a, b, c) में तीन अद्वितीय प्रविष्टियां ढूंढनी होंगी जैसे कि |a + b + c - k| कम से कम किया जाता है और पूर्ण अंतर लौटाता है।
इसलिए, यदि इनपुट संख्या =[2, 5, 25, 6] k =14 की तरह है, तो आउटपुट 1 होगा जैसे कि हम [2, 5, 6] लेते हैं, हमें 14 के सबसे करीब मिलेगा और पूर्ण अंतर है |13 - 14| =1.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
सूची संख्या क्रमित करें
-
उत्तर :=1^9
-
मैं के लिए 0 से लेकर अंकों के आकार तक, करें
-
जे:=मैं + 1
-
k :=अंकों का आकार - 1
-
जबकि जे <के, करो
-
एस:=अंक [i] + अंक [जे] + अंक [के]
-
अगर s <=लक्ष्य, तो
-
उत्तर :=न्यूनतम उत्तर और लक्ष्य - s
-
जे:=जे + 1
-
-
अन्यथा,
-
उत्तर :=न्यूनतम उत्तर और s - लक्ष्य
-
के :=के - 1
-
-
-
-
वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, nums, target): nums.sort() ans = 1e9 for i in range(len(nums)): j = i + 1 k = len(nums) − 1 while j < k: s = nums[i] + nums[j] + nums[k] if s <= target: ans = min(ans, target - s) j += 1 else: ans = min(ans, s - target) k −= 1 return ans ob1 = Solution() nums = [2, 5, 25, 6] k = 14 print(ob1.solve(nums, k))लौटाएं
इनपुट
[2, 5, 25, 6], 14
आउटपुट
1