একটি অ্যারে এবং একটি সংখ্যা দেওয়া থাকলে, অ্যারেতে সেই সংখ্যা থেকে ছোট এবং বড় উপাদানগুলোর সংখ্যা বের করা।
উদাহরণ
arr = [3, 5, 5, 2, 23, 4, 7, 8, 8, 9] num = 3 ছোট ( < 3): [2] → ১টি বড় ( > 3): [5, 5, 23, 4, 7, 8, 8, 9] → ৮টি
সমাধান
const smallerLargerNumbers = (arr, num) => {
let smaller = 0;
let greater = 0;
for (const val of arr) {
if (val < num) smaller++;
else if (val > num) greater++;
// সমান হলে কোনোটিই না
}
return { smaller, greater };
};
// reduce ব্যবহার করে
const smallerLargerReduce = (arr, num) => {
return arr.reduce((acc, val) => {
if (val < num) acc.smaller++;
else if (val > num) acc.greater++;
return acc;
}, { smaller: 0, greater: 0 });
};
// ফিল্টার ব্যবহার (পড়া সহজ)
const smallerLargerFilter = (arr, num) => ({
smaller: arr.filter(v => v < num).length,
greater: arr.filter(v => v > num).length
});
// টেস্ট
const arr = [3, 5, 5, 2, 23, 4, 7, 8, 8, 9];
console.log(smallerLargerNumbers(arr, 3)); // {smaller: 1, greater: 8}
console.log(smallerLargerReduce(arr, 3)); // {smaller: 1, greater: 8}
console.log(smallerLargerFilter(arr, 3)); // {smaller: 1, greater: 8}
ব্যাখ্যা
- সমান উপাদান: না ছোট না বড় (ইগনোর)
- সময় জটিলতা: O(n) - এক পাসে হয়
- স্থান জটিলতা: O(1) - কনস্ট্যান্ট এক্সট্রা স্পেস
বিস্তারিত স্ট্যাটিস্টিক্স
const detailedStats = (arr, num) => {
const stats = { smaller: 0, equal: 0, greater: 0 };
for (const val of arr) {
if (val < num) stats.smaller++;
else if (val > num) stats.greater++;
else stats.equal++;
}
return stats;
};
console.log(detailedStats(arr, 3));
// {smaller: 1, equal: 1, greater: 8}
উৎপাদন
{ greater: 8, smaller: 1 }