469 字
2 分钟
搜索二维矩阵 II

题目描述#

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

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

解题思路#

  1. 对角线起点选择
    • 从右上角(或左下角)开始搜索
    • 利用行列有序特性缩小范围
  2. 决策路径优化
    • 当前值 < target → 下移(排除当前行)
    • 当前值 > target → 左移(排除当前列)
    • 当前值 = target → 返回成功
  3. 边界终止条件
    • 行索引超出矩阵底部
    • 列索引超出矩阵左边界
  4. 方向特性利用
    • 右上角:左小下大
    • 左下角:右小上大

关键洞察#

  1. 矩阵特性利用
    • 行列方向独立有序
    • 对角线形成阶梯状递增
  2. 搜索路径最优性
    • 每次移动排除一行/列
    • 避免无效区域扫描
  3. 起点选择优势
    • 右上角/左下角是决策枢纽点
    • 提供最大比较信息
  4. 无回溯机制
    • 移动路径是单向收敛的
    • 不会遗漏可能区域

复杂度分析#

指标说明
时间复杂度O(m+n):最坏情况遍历一行一列长度之和
空间复杂度O(1):仅使用常数额外变量

代码实现#

/**
* @param {number[][]} matrix
* @param {number} target
* @return {boolean}
*/
var searchMatrix = function (matrix, target) {
const m = matrix.length;
const n = matrix[0].length;
let x = 0, y = n - 1;
while (x < m && y >= 0) {
if (matrix[x][y] === target) return true;
if (matrix[x][y] > target) {
y--;
} else {
x++;
}
}
return false
};

实际应用场景#

  1. 电商系统:商品价格-库存矩阵中查找特定组合`
  2. 地理信息系统:海拔矩阵中搜索特定高度区域`
  3. 图像处理:在有序像素矩阵中定位特定颜色值

相似题目#

搜索二维矩阵 II
https://website-truelovings-projects.vercel.app/posts/algorithms/搜索二维矩阵-ii/
作者
欢迎来到StarSky的网站!
发布于
2025-08-18
许可协议
CC BY-NC-SA 4.0