240. Search a 2D Matrix II

25 年 11 月 2 日 星期日
167 字
1 分钟

240. Search a 2D Matrix II

Screenshot 2025-11-02 at 5.51.58 pm
Screenshot 2025-11-02 at 5.52.22 pm
js
/**
 * @param {number[][]} matrix
 * @param {number} target
 * @return {boolean}
 */
var searchMatrix = function (matrix, target) {
  const n = matrix.length
  for (let i = 0; i < n; i++) {
    for (let j = matrix[0].length - 1; j > -1; j--) {
      if (matrix[i][j] < target) {
        break
      } else if (matrix[i][j] > target) {
        continue
      } else {
        return true
      }
    }
  }
  return false
}
Screenshot 2025-11-02 at 5.55.04 pm
js
var searchMatrix = function (matrix, target) {
  const m = matrix.length,
    n = matrix[0].length
  let i = 0,
    j = n - 1 // 从右上角开始
  while (i < m && j >= 0) {
    if (matrix[i][j] === target) {
      return true
    } else if (matrix[i][j] < target) {
      // 排除这行
      i++
    } else {
      //matrix[i][j] < target 排除这列
      j--
    }
  }
  return false
}

这个解法性能更好

文章标题:240. Search a 2D Matrix II

文章作者:Sirui Chen

文章链接:https://blog.siruichen.me/posts/240_search_a_2d_matrix_ii[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。