हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी को पहले तर्क के रूप में और एक लक्ष्य योग को दूसरे तर्क के रूप में लेता है।
फ़ंक्शन को सरणी से दो ऐसी संख्याओं का इंडेक्स ढूंढना और लौटाना चाहिए (लगातार या गैर-लगातार) जो लक्ष्य योग देने के लिए जुड़ते हैं (यदि कोई हैं)। शर्त यह है कि हमें इसे रैखिक समय (एक पुनरावृति) में करना है।
हम एक मैप का उपयोग करके पुनरावृत्त संख्याओं की गिनती रखेंगे, और यदि किसी भी बिंदु पर हमें दो संख्याएं मिलती हैं जो लक्ष्य योग देती हैं तो हम तुरंत लौटाते हैं।
उदाहरण
इसके लिए कोड होगा -
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]