240.搜索二维矩阵II
链接:240.搜索二维矩阵II
难度:Medium
标签:数组、二分查找、分治、矩阵
简介:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。
题解 1 - typescript
- 编辑时间:2021-10-25
- 执行用时:96ms
- 内存消耗:43.1MB
- 编程语言:typescript
- 解法介绍:拆分查找。
function searchMatrix(matrix: number[][], target: number): boolean {
  return matrix.flat().includes(target);
}
题解 2 - typescript
- 编辑时间:2021-07-24
- 执行用时:72ms
- 内存消耗:40.8MB
- 编程语言:typescript
- 解法介绍:从右上角开始寻找。
function searchMatrix(matrix: number[][], target: number): boolean {
  let i = 0;
  let j = matrix[0].length - 1;
  while (i < matrix.length && j >= 0) {
    if (matrix[i][j] > target) j--;
    else if (matrix[i][j] < target) i++;
    else return true;
  }
  return false;
}
题解 3 - typescript
- 编辑时间:2021-10-25
- 执行用时:72ms
- 内存消耗:41MB
- 编程语言:typescript
- 解法介绍:从右上角开始找,target 就左移,target 大就下移。
function searchMatrix(matrix: number[][], target: number): boolean {
  const m = matrix.length;
  const n = matrix[0].length;
  let row = 0;
  let col = n - 1;
  while (row < m && col >= 0) {
    const num = matrix[row][col];
    if (num === target) return true;
    if (num > target) col--;
    else row++;
  }
  return false;
}