সমস্যা বিবরণ
নাম্বার অ্যারে দেওয়া আছে। স্মলেস্ট এবং লার্জেস্ট এলিমেন্ট বাদ দিয়ে বাকি গুলোর গড় বের করতে হবে।
সমাধান
const arr = [2, 6, 5, 4, 6, 8, 8, 5, 6, 6, 9, 4, 1, 4, 6, 7];
const specialAverage = (arr = []) => {
const { length } = arr;
if (length <= 2) return 0;
const { sum, min, max } = arr.reduce((acc, val) => {
let { min, max, sum } = acc;
sum += val;
if (val > max) max = val;
if (val < min) min = val;
return { min, max, sum };
}, {
min: Number.MAX_VALUE,
max: Number.MIN_VALUE,
sum: 0
});
return (sum - min - max) / (length - 2);
};
console.log(specialAverage(arr)); // 5.5
আউটপুট
5.5
ব্যাখ্যা
reduceদিয়ে একই পাসে sum, min, max বের করা হয়েছে (O(n))।- এজ কেস: লেন্থ ≤ ২ হলে ০ রিটার্ন।