leetcode 每日一刷

188 阅读1分钟

矩阵中的幸运数

我的解体思路是,先动态计算出每一行数据的最小值,再根据最小值获取到当前列的index,再去遍历列去判断是否为最大值,如果是则返回。

由于是第一次写掘金文章,也算实现了0的突破。。

废话不多说直接上代码

  const luckyNumbers = (matrix: number[][]): number[] => {
  //行数
  const row = matrix.length;
  //行内最小数集合
  let arr: number[] = [];
  for (let i = 0; i < row; i++) {
    const minRow = Math.min.apply(null, matrix[i]);
    const j = matrix[i].findIndex(item => item === minRow);
    let isMax = true;
    for (let k = 0; k < row; k++) {
      if (matrix[k][j] > matrix[i][j]) {
        isMax = false;
        break;
      }
    }
    if(isMax) {
      arr.push(minRow);
    }
  }
  return arr
};

如果有更好的解体思路希望大家留言交流,喜欢的小伙伴请支持一下,一键三连🙏