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

力扣hot100 ——搜索二维矩阵 || m+n复杂度优化解法

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

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

解题思路:

借助行和列有序特性,不断按行或者列缩小范围;途中数字表示每次执行,不同颜色框出的范围就是每次缩小后的区域,由于不是按行就是按列缩小,所以时间复杂度就是O(m+n)

class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target) {// 边界缩小查找// 从右上角开始缩小;先水平调整,然后竖直缩小// 借助行和列有序特性,不断按行或者列缩小范围;由于不是按行就是按列缩小,所以时间复杂度就是O(m+n)int rows = matrix.size(),clos = matrix[0].size(); // row 行上限  clo 列上限int row = 0,clo = clos - 1;if(target > matrix[rows-1][clos - 1]){return false;}while(row < rows && clo >= 0){if(matrix[row][clo] == target){return true;}else if(matrix[row][clo] > target){--clo;}else{++row;}}return false;}
};

http://www.lryc.cn/news/540439.html

相关文章:

  • 娱乐使用,可以生成转账、图片、聊天等对话内容
  • 【PyQt5】python可视化开发:PyQt5介绍,开发环境搭建快速入门
  • 使用 FFmpeg 剪辑视频指南
  • AWS云从业者认证题库 AWS Cloud Practitioner
  • 高性能内存对象缓存Memcached详细实验操作
  • 【C++复习专题】—— 类和对象,包含类的引入、访问限定符、类的6个默认成员函数等
  • Three.js 快速入门教程【一】开启你的 3D Web 开发之旅
  • Windows 图形显示驱动开发-CPU 内存调节和64KB 页面支持
  • PLC通信交互系统技术分享
  • ceph HEALTH_WARN clock skew detected on mon.f, mon.o, mon.p, mon.q
  • Git命令行入门
  • pdf-extract-kit paddle paddleocr pdf2markdown.py(效果不佳)
  • Android 10.0 移除wifi功能及相关菜单
  • 什么是Dubbo?Dubbo框架知识点,面试题总结
  • Django+Vue3全栈开发实战:从零搭建博客系统
  • 双重差分学习笔记
  • python组备赛笔记(基础篇)
  • 从零开始构建一个小型字符级语言模型的完整详细教程(基于Transformer架构)
  • XUnity.AutoTranslator-Gemini——调用Google的Gemini API, 实现Unity游戏中日文文本的自动翻译
  • 中文Build a Large Language Model (From Scratch) 免费获取全文
  • DeepSeek 助力 Vue 开发:打造丝滑的瀑布流布局(Masonry Layout)
  • C++:从拷贝构造函数到深浅拷贝
  • Openssl之SM2加解密命令
  • Java集合框架之List接口详解
  • oracle apex post接口
  • 【数据挖掘】--算法
  • halcon机器视觉深度学习对象检测,物体检测
  • 英文字体:极简现代浓缩未来派科技海报标题排版无衬线字体 PODIUM Sharp Font
  • Java中JDK、JRE,JVM之间的关系
  • elasticsearch在windows上的配置