मान लीजिए कि हमारे पास संख्याओं की एक सरणी है और दूसरी संख्या k है, हमें यह जांचना है कि क्या दिए गए सरणी को जोड़े में विभाजित किया जा सकता है जैसे कि प्रत्येक जोड़ी का योग k है या नहीं।
इसलिए, यदि इनपुट arr =[1, 2, 3, 4, 5, 6], k =7 जैसा है, तो आउटपुट सही होगा क्योंकि हम (2, 5), (1, 6) जैसे जोड़े ले सकते हैं। और (3, 4)।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- n :=गिरफ्तारी का आकार
- यदि n विषम है, तो
- झूठी वापसी
- निम्न :=0, उच्च :=n - 1
- कम <उच्च होने पर,
- . करें
- अगर arr[low] + arr[high] k के समान नहीं है, तो
- झूठी वापसी
- निम्न :=निम्न + 1
- उच्च :=उच्च - 1
- अगर arr[low] + arr[high] k के समान नहीं है, तो
- सही लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def solve(arr, k): n = len(arr) if n % 2 == 1: return False low = 0 high = n - 1 while low < high: if arr[low] + arr[high] != k: return False low = low + 1 high = high - 1 return True arr = [1, 2, 3, 4, 5, 6] k = 7 print(solve(arr, k))
इनपुट
[1, 2, 3, 4, 5, 6], 7
आउटपुट
True