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

Số may mắn trong ma trận trong JavaScript


Cho một ma trận m x n chứa các số khác nhau, chúng ta phải trả về tất cả các số may mắn trong mảng 2D (ma trận) theo bất kỳ thứ tự nào.

Số may mắn là phần tử của ma trận sao cho nó là phần tử nhỏ nhất trong hàng của nó 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] 
];

Thì đầu ra sẽ là:

const output = [15];

vì 15 là số may mắn duy nhất vì nó là nhỏ nhất trong hàng của nó và lớn nhất trong cột của nó.

Ví dụ

Code cho việc 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));

Kết quả

Kết quả hiển thị trong console sẽ là:

[15]