矩陣中的幸運數字(JavaScript)


給定一個包含不同數字的 m * n 矩陣,我們必須以任何順序在此 2-D 陣列(矩陣)中返回所有幸運數字。

幸運數字是矩陣中的一個元素,它是其行中的最小元素,並且是其列中的最大元素。

例如 − 如果輸入陣列為 −

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

則輸出應為 −

const output = [15];

因為 15 是唯一的幸運數字,因為它在其行中最小,在其列中最大。

示例

此程式碼為 −

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));

輸出

在控制檯中的輸出為 −

[15]

更新日期: 2020 年 11 月 25 日

568 次瀏覽

開啟你的職場生涯

完成課程並獲得認證

開始學習
廣告
© . All rights reserved.