मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची और एक मान k है, हमें यह जांचना है कि क्या सूची में चार अद्वितीय एलिमेंट हैं जो k तक जोड़ते हैं।
तो, यदि इनपुट nums = [11, 4, 6, 10, 5, 1], k = 25 जैसा है, तो आउटपुट True होगा, क्योंकि हमारे पास [4, 6, 10, 5] है जिनका योग 25 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- सूची nums को सॉर्ट करें
- n := nums का आकार
- i को 0 से n - 4 तक की रेंज में लिए, करें
- j को i + 1 से n - 3 तक की रेंज में लिए, करें
- l := j + 1, h := nums के आकार - 1
- जब l < h, करें
- summ := nums[i] + nums[j] + nums[l] + nums[h]
- यदि summ, k के समान है, तो True लौटाएं
- अन्यथा जब summ < k, तो l := l + 1
- अन्यथा, h := h - 1
- जब l < h, करें
- l := j + 1, h := nums के आकार - 1
- False लौटाएं
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
class Solution: def solve(self, nums, k): nums.sort() n = len(nums) for i in range(n - 3): for j in range(i + 1, n - 2): l, h = j + 1, len(nums) - 1 while l < h: summ = nums[i] + nums[j] + nums[l] + nums[h] if summ == k: return True elif summ < k: l += 1 else: h -= 1 return False ob1 = Solution() nums = [11, 4, 6, 10, 5, 1] k = 25 print(ob1.solve(nums, k))इनपुट
[11, 4, 6, 10, 5, 1], 25आउटपुट
True - j को i + 1 से n - 3 तक की रेंज में लिए, करें