矩阵中的幸运数字(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]
广告