Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

240. 搜索二维矩阵 II #70

Open
webVueBlog opened this issue Sep 5, 2022 · 0 comments
Open

240. 搜索二维矩阵 II #70

webVueBlog opened this issue Sep 5, 2022 · 0 comments

Comments

@webVueBlog
Copy link
Owner

240. 搜索二维矩阵 II

Description

Difficulty: 中等

Related Topics: 数组, 二分查找, 分治, 矩阵

编写一个高效的算法来搜索 _m_ x _n_ 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

  • 每行的元素从左到右升序排列。
  • 每列的元素从上到下升序排列。

示例 1:

输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
输出:true

示例 2:

输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20
输出:false

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= n, m <= 300
  • -109 <= matrix[i][j] <= 109
  • 每行的所有元素从左到右升序排列
  • 每列的所有元素从上到下升序排列
  • -109 <= target <= 109

Solution

Language: JavaScript

/**
 * @param {number[][]} matrix
 * @param {number} target
 * @return {boolean}
 */
// 双指针 左下角
var searchMatrix = function(matrix, target) {
  if(matrix.length === 0) return false
  let row = matrix.length , col = matrix[0].length,  i = row - 1, j = 0
  while( i >= 0 && j < col ) {
      if(matrix[i][j] > target) {
          i--
      } else if(matrix[i][j] < target) {
          j++
      } else {
          return true
      }
  }
  return false
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant