আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি পূর্ণসংখ্যার অ্যারে প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে গ্রহণ করবে।
ফাংশনটি অ্যারের যেকোনো দুটি উপাদান গুণ করে সর্বোচ্চ গুণফল বের করবে। শর্ত হলো এটি রৈখিক সময় (linear time) এবং ধ্রুবক স্থান (constant space) কমপ্লেক্সিটিতে করতে হবে।
উদাহরণস্বরূপ —
ইনপুট অ্যারে যদি হয় —
const arr = [3, 9, 2, 1, 0];
তাহলে আউটপুট হবে —
const output = 27;
কারণ এটি সর্বোচ্চ গুণফল যা 3 এবং 9 গুণ করে পাওয়া যায়।
উদাহরণ
নিচের কোডটি দেখুন:
const arr = [3, 9, 2, 1, 0];
const maxPairProduct = (arr = []) => {
let c = Infinity, d = c;
let a = -Infinity - 1, b = a;
for (const n of arr) {
if(n >= a){
b = a;
a = n;
}else if(n >= b){
b = n;
};
if(n <= d){
c = d;
d = n;
}else if(n <= c){
c = n;
};
};
return Math.max(a * b, c * d);
};
console.log(maxPairProduct(arr));
আউটপুট
কনসোল আউটপুট:
27