【LeetCode热题100】【二分查找】搜索二维矩阵

server/2024/9/24 3:34:08/

题目链接:74. 搜索二维矩阵 - 力扣(LeetCode)

在一个有序二维数组里面查找元素,同【LeetCode热题100】【矩阵】搜索二维矩阵 II-CSDN博客

如果用二分查找,时间复杂度是log(mn),但是可以实现时间复杂度为O(m+n)的,从右上角开始查找,如果当前元素比目标小,说明应该在下面范围,矩阵压扁,如果当前元素比目标大,说明在左边范围,矩阵压扁,这样最多只需要遍历m+n个元素可以确定元素是否存在

class Solution {
public:bool searchMatrix(vector<vector<int> > &matrix, int target) {int x = 0, y = matrix[0].size() - 1, n = matrix.size();while (x < n && y >= 0) {if (matrix[x][y] == target)return true;if (matrix[x][y] < target)++x;else--y;}return false;}
};


http://www.ppmy.cn/server/10398.html

相关文章

如何用Python构建一个生产级别的电影推荐系统 - 机器学习手册

构建项目是彻底学习概念并发展必要技能的最有效方式之一。 项目使您沉浸在现实世界的问题解决中&#xff0c;巩固您的知识&#xff0c;并培养批判性思维、适应能力和项目管理专业知识。 本指南将带您逐步构建一个根据用户喜好量身定制的电影推荐系统。我们将利用一个庞大的包…

手撕红黑树(map和set底层结构)(2)

[TOC]红黑树 一 红黑树概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其他路径长出俩倍&…

软考 - 系统架构设计师 - ESB(企业服务总线)例题

问题 1&#xff1a; 根据描述 Ramp Control 是负责系统中相关各种业务活动的组件&#xff0c;根据题目描述&#xff0c;系统中包含检查机位环境&#xff0c;卸货&#xff0c;装货等业务活动&#xff0c;所以 Ramp Control 服务组件提供的服务名称就是 “负责检查机位环境&#…

编写一款2D CAD/CAM软件(十六)交互绘制图形

绘制步骤 以交互绘制圆形为例&#xff1a; 点击鼠标左键&#xff0c;确定圆心位置&#xff1b;抬起鼠标&#xff0c;移动鼠标&#xff0c;半径随鼠标位置变化&#xff1b;点击左键确定半径&#xff0c;完成圆的绘制。 绘制结果 Code /// j-operator-create-circle.h#pragma…

使用阿里云试用Elasticsearch学习:sentence-transformers 包使用

环境&#xff1a;centos8&#xff0c;windows坑太多。 一、检查linux环境openssl哪个版本&#xff08;如果是OpenSSL 1.1.1k 直接跳过&#xff09; [roothecs-334217 python39]# openssl version OpenSSL 1.0.2k-fips 26 Jan 2017原因后续会出麻烦&#xff0c;遇到这种情况最…

华为OD机试真题-幼儿园篮球游戏-2023年OD统一考试(C卷D卷)

题目描述: 幼儿园里有一个放倒的圆桶,它是一个 线性结构,允许在桶的右边将篮球放入,可以在桶的左边和右边将篮球取出。每个篮球有单独的编号,老师可以连续放入一个或多个篮球,小朋友可以在桶左边或右边将篮球取出,当桶只有一个篮球的情况下,必须从左边取出。 如老师按顺…

【目标检测】Yolov7 的 ELAN 和 E-ELAN 模块演进(涉及到分组卷积,cardinality,梯度路径)

感觉从 YOLOv6 开始&#xff0c;YOLOv6 系列感觉优化点都着重于推理速度上面&#xff0c;YOLOv6 的 RepBlock 重参数化&#xff0c;给我的感觉就是算子融合进行加速。而 YOLOv7&#xff0c;为了在各种架构的边缘设备上获得极致的推理速度。 YOLOv7 的工作&#xff1a; 新的 b…

【QT】QtConcurrent的使用介绍,与std::thread的区别

QtConcurrent 模块是 Qt 框架中用于简化并发编程的一部分。它提供了一系列高级API&#xff0c;使得开发者能够更容易地编写多线程代码&#xff0c;从而利用多核处理器的能力。这个模块主要围绕使用线程池来执行函数调用、运行算法或者处理数据集。QtConcurrent 的核心优势是它的…