हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो पहले तर्क के रूप में संख्याओं की एक सरणी और दूसरे तर्क के रूप में एक लक्ष्य योग लेता है।
फ़ंक्शन को सरणी (लगातार या गैर-लगातार) से दो ऐसी संख्याओं की अनुक्रमणिका ढूंढनी और वापस करनी चाहिए जो लक्ष्य योग (यदि कोई हो) देने के लिए जोड़ती है। शर्त यह है कि हमें इसे रैखिक समय (एक पुनरावृत्ति) में करना होगा।
हम मानचित्र का उपयोग करके पुनरावृत्त संख्याओं की गिनती रखेंगे, और यदि किसी भी बिंदु पर हमें दो संख्याएँ मिलती हैं जो लक्ष्य राशि देती हैं तो हम तुरंत वापस आ जाते हैं।
उदाहरण
इसके लिए कोड होगा -
const arr = [1, 3, 5, 7, 9, 11]; const target = 16; const twoSum = function(arr, target) { const map = new Map(); for(let i = 0; i < arr.length; i++) { let num = arr[i]; if(map.get(num) === undefined){ map.set(target−num, i) }else{ return [map.get(num), i] }; }; }; console.log(twoSum(arr, target));
आउटपुट
और कंसोल में आउटपुट होगा -
[3, 4]