Computer >> Máy Tính >  >> Lập trình >> Javascript

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

Chúng tôi được yêu cầu viết một hàm JavaScript lấy mảng số nguyên hai chiều làm đối số duy nhất.

Nhiệm vụ của hàm của chúng ta là tính toán số lượng tất cả các số nguyên như vậy từ mảng lớn nhất cả trong hàng và cột của chúng.

Sau đó, hàm sẽ trả về số lượng đó.

Ví dụ -

Nếu mảng đầu vào là -

const arr = [
   [21, 23, 22],
   [26, 26, 25],
   [21, 25, 27]
];

Sau đó, đầu ra phải là -

const output = 3;

bởi vì ba số đó là 26, 26, 27

Ví dụ

Sau đây là mã -

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 = [];
   const 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));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

3