সমস্যা বিবরণ
নাম্বার অ্যারে (পজেটিভ ও নেগেটিভ) দেওয়া আছে। দুটি অ্যাডজেসেন্ট এলিমেন্টের সর্বোচ্চ গুণফল বের করতে হবে।
ইনপুট: [-23, 4, -3, 8, -12]
অ্যাডজেসেন্ট পেয়ার: (-23,4)=-92, (4,-3)=-12, (-3,8)=-24, (8,-12)=-96 → সর্বোচ্চ = -12
সমাধান
const arr = [-23, 4, -3, 8, -12];
const adjacentProduct = (arr = []) => {
let first = 0, second = 0;
let res = Number.MIN_SAFE_INTEGER;
for (let i = 0; i < arr.length; i++) {
first = arr[i];
second = arr[i + 1];
if (first * second > res) res = first * second;
}
return res;
};
console.log(adjacentProduct(arr)); // -12
আউটপুট
-12
ব্যাখ্যা
- লুপ
arr.length - 1পর্যন্ত চলা উচিত (লাস্ট এলিমেন্টের পরের এলিমেন্ট undefined)၊ কিন্তু JS-এarr[length]undefined রিটার্ন করে, গুণফল NaN হয়, যেটি > res হবে না। Number.MIN_SAFE_INTEGERব্যবহার করা হয়েছে ইনিশিয়াল মিনিমাম হিসেবে।