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

Những con số may mắn trong một ma trận trong JavaScript

Cho một ma trận m * n gồm các số phân biệt, chúng ta phải trả về tất cả các số may mắn trong mảng 2-D (ma trận) theo thứ tự bất kỳ.

Số may mắn là một phần tử của ma trận sao cho nó là phần tử tối thiểu trong hàng và lớn nhất trong cột của nó.

Ví dụ - Nếu mảng đầu vào là -

const arr = [
   [3,7,8],
   [9,11,13],
   [15,16,17]
];

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

const output = [15];

bởi vì 15 là con số may mắn duy nhất vì nó là số tối thiểu trong hàng và số tối đa trong cột của nó.

Ví dụ

Mã cho điều này sẽ là -

const arr = [
   [3,7,8],
   [9,11,13],
   [15,16,17]
];
const luckyNumbers = (arr, res = []) => {
   let M = arr.length, N = arr[0].length;
   let min = Array(M).fill( Infinity);
   let max = Array(N).fill(-Infinity);
   for (let i = 0; i < M; ++i)
   for (let j = 0; j < N; ++j)
   min[i] = Math.min(min[i], arr[i][j]),
   max[j] = Math.max(max[j], arr[i][j]);
   for (let i = 0; i < M; ++i)
   for (let j = 0; j < N; ++j)
   if (min[i] == max[j])
   res.push(arr[i][j]);
   return res;
};
console.log(luckyNumbers(arr));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

[15]