সমস্যা
একটি ২-ডাইমেনশনাল সংখ্যা অ্যারে দেওয়া আছে। প্রতিটি সারি (row) থেকে সবচেয়ে ছোট সংখ্যাটি বের করে, সব সারির ন্যূনতম মানের যোগফল রিটার্ন করতে হবে।
উদাহরণ কোড
const arr = [
[2, 5, 1, 6],
[6, 8, 5, 8],
[3, 6, 7, 5],
[9, 11, 13, 12]
];
const sumSmallest = (arr = []) => {
const findSmallest = array => array.reduce((acc, val) => Math.min(acc, val), Infinity);
let sum = 0;
arr.forEach(sub => {
sum += findSmallest(sub);
});
return sum;
};
console.log(sumSmallest(arr));
আউটপুট
18
ব্যাখ্যা
- সারি ১: [2, 5, 1, 6] → ন্যূনতম = ১
- সারি ২: [6, 8, 5, 8] → ন্যূনতম = ৫
- সারি ৩: [3, 6, 7, 5] → ন্যূনতম = ৩
- সারি ৪: [9, 11, 13, 12] → ন্যূনতম = ৯
- যোগফল: ১ + ৫ + ৩ + ৯ = ১৮
আধুনিক সংক্ষিপ্ত সংস্করণ (ES6+)
const sumSmallestModern = arr =>
arr.reduce((sum, row) => sum + Math.min(...row), 0);
console.log(sumSmallestModern(arr)); // 18
ব্যাখ্যা
Math.min(...row)- স্প্রেড অপারেটর দিয়ে সারির সব উপাদান আর্গুমেন্ট হিসেবে পাস করা হয়।reduceদিয়ে সব সারির ন্যূনতম যোগ করা হয়।- খালি সারি হ্যান্ডল করতে:
Math.min(...row, Infinity)বাrow.length ? Math.min(...row) : 0
টাইপস্ক্রিপ্ট সংস্করণ
function sumSmallest(arr: number[][]): number {
return arr.reduce((sum, row) => {
if (row.length === 0) return sum;
return sum + Math.min(...row);
}, 0);
}