हमारे पास पूर्णांकों की एक सरणी है जिसे बढ़ते क्रम में क्रमबद्ध किया गया है। हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो पहले तर्क के रूप में एक ऐसी सरणी और दूसरे तर्क के रूप में एक लक्ष्य योग संख्या लेता है।
फ़ंक्शन को सरणी से दो ऐसी संख्याओं को ढूंढना और वापस करना चाहिए जो जोड़े जाने पर लक्ष्य योग देता है। इस समस्या को हल करने की शर्त यह है कि हमें इसे रैखिक समय में करना होगा और निरंतर स्थान का उपयोग करना होगा।
उदाहरण
निम्नलिखित कोड है -
const arr = [4, 6, 8, 9, 11, 12, 18, 21]; const num = 27; const findElements = (arr = [], target) => { let left = 0; let right = arr.length - 1; let res = []; while (left < right) { let leftElement = arr[left]; let rightElement = arr[right]; if (leftElement + rightElement === target) { res.push(arr[left]); res.push(arr[right]); break; } else if (leftElement + rightElement > target) { right--; } else { left++; } } return res; }; console.log(findElements(arr, num));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
[6, 21]