Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Đếm số lớn nhất cả hàng và cột trong mảng 2D JavaScript

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