Viết hàm nhận mảng 2D số nguyên, đếm số phần tử là lớn nhất cả trong hàng và cột của nó.
Ví dụ: [[21,23,22],[26,26,25],[21,25,27]] → 3 (26,26,27).
Ví dụ
const arr = [[21,23,22],[26,26,25],[21,25,27]];
const countGreatest = (matrix = []) => {
let rows = matrix.length;
if (rows == 0) return 0;
let cols = matrix[0].length;
const colMax = [], rowMax = [];
let res = 0;
for (let r = 0; r < rows; ++r) {
for (let c = 0; c < cols; ++c) {
rowMax[r] = Math.max(rowMax[r] || 0, matrix[r][c]);
colMax[c] = Math.max(colMax[c] || 0, matrix[r][c]);
}
}
for (let r = 0; r < rows; ++r) {
for (let c = 0; c < cols; ++c) {
if (matrix[r][c] == rowMax[r] && matrix[r][c] == colMax[c]) res++;
}
}
return res;
};
console.log(countGreatest(arr));
Kết quả
3