当前位置: 首页 > article >正文

Hot100 - 搜索二维矩阵II

Hot100 - 搜索二维矩阵II

image-20241130000301509

最佳思路:

利用矩阵的特性,针对搜索操作可以从右上角或者左下角开始。通过判断当前位置的元素与目标值的关系,逐步缩小搜索范围,从而达到较高的效率。

  • 从右上角开始:假设矩阵是升序排列的(每行和每列都升序)。如果当前位置的元素等于目标值,返回 true;如果当前位置的元素小于目标值,向下移动(行索引加 1);如果当前位置的元素大于目标值,向左移动(列索引减 1)。通过这种方式,可以快速排除不可能的部分。

时间复杂度:

  • 时间复杂度为 O(m+n)O(m + n),其中 mm 是矩阵的行数,nn 是矩阵的列数。在最坏情况下,最多需要检查一行和一列的元素。

思路解析:

  1. 从右上角开始搜索:矩阵的每一行是升序排列的,每一列也是升序排列的。从右上角元素开始,如果当前元素等于目标值,返回 true;如果小于目标值,则说明当前元素及其所在的列不可能包含目标值,向下移动;如果大于目标值,则说明当前元素及其所在的行不可能包含目标值,向左移动。
  2. 逐步缩小搜索范围:通过不断调整行列索引,逐步缩小可能包含目标值的区域,直到找到目标值或确定目标值不存在。

代码实现:

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int m = matrix.length;  // 行数
        int n = matrix[0].length;  // 列数
        int i = 0;  // 从第一行开始
        int j = n - 1;  // 从最后一列开始

        while (i < m && j >= 0) {
            if (matrix[i][j] == target) {
                return true;  // 找到目标值
            } else if (matrix[i][j] < target) {
                i++;  // 向下移动
            } else {
                j--;  // 向左移动
            }
        }

        return false;  // 没有找到目标值
    }
}

思路总结:

  • 优化搜索:通过从矩阵的右上角开始搜索,可以利用矩阵的行列升序特点,有效缩小搜索范围。
  • 时间复杂度:在最坏情况下,我们最多会搜索 m+nm + n 次元素,比直接遍历整个矩阵的 O(m×n)O(m \times n) 要高效得多。
  • 空间复杂度:此方法使用了常数空间 O(1)O(1),不需要额外的空间来存储数据。

http://www.kler.cn/a/415260.html

相关文章:

  • 2024-11-25 二叉树的定义
  • linux安装部署mysql资料
  • 【机器学习】—逻辑回归
  • ZooKeeper 基础知识总结
  • R Excel 文件操作指南
  • 全新AI模型家族登场:完全可复现的开源语言模型OLMo 2
  • Unity的GPU Instancing技术
  • 智能驾驶,车联网,传感器,车载电子集中展示|2025北京自动驾驶展
  • 欧科云链研究院:比特币还能“燃”多久?
  • 【vue-router】Vue-router如何实现路由懒加载
  • Spring Boot 3.x 多环境配置详解
  • vscode、android studio、vim 国产AI编程插件Fitten Code
  • nVisual可视化资源管理工具
  • com.alibaba.fastjson.JSONException: not close json text, token : error
  • HTTPS 的应用数据是如何保证完整性的?
  • 玩转 uni-app 静态资源 static 目录的条件编译
  • 【Linux】线程同步与互斥 (生产者消费者模型)
  • C#:时间与时间戳的转换
  • 一文解析Kettle开源ETL工具!
  • 评分规则的建模,用户全选就是满分10分(分数可自定义), 选2个5分, 选2个以下0分
  • Day31 贪心算法 part05
  • ChatGPT 网络安全秘籍(二)
  • 《普通逻辑》学习记录——复合命题和复合推理
  • 视觉语言模型(VLM)学习笔记
  • 楼顶气膜馆:引领科技感与声学完美结合的未来会议空间—轻空间
  • 40分钟学 Go 语言高并发:Go程序性能优化方法论