আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা সংখ্যাদের একটি অ্যারে প্রথম আর্গুমেন্ট হিসেবে এবং একটি টার্গেট সম দ্বিতীয় আর্গুমেন্ট হিসেবে গ্রহণ করবে।
ফাংশনটি অ্যারেতে থেকে দুটি এমন সংখ্যার ইনডেক্স খুঁজে বের করবে এবং রিটার্ন করবে (কনসিকিউটিভ বা নন-কনসিকিউটিভ) যেগুলো যোগ করলে টার্গেট সম হবে (যদি থাকে)। শর্ত হলো আমাদের লিনিয়ার টাইমে (এক ইটারেশন) এটি করতে হবে।
আমরা ইটারেট করা সংখ্যাগুলোর কাউন্ট একটি ম্যাপ দিয়ে রাখব, এবং যেকোনো পয়েন্টে যদি দুটি সংখ্যা টার্গেট সম দেয় তবে অবিলম্বে রিটার্ন করব।
উদাহরণ
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]