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

C++二维数组中的查找

4. 二维数组中的查找

题目链接

牛客网

题目描述

给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。

Consider the following 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]
]Given target = 5, return true.
Given target = 20, return false.

解题思路

要求时间复杂度 O(M + N),空间复杂度 O(1)。其中 M 为行数,N 为 列数。

该二维数组中的一个数,小于它的数一定在其左边,大于它的数一定在其下边。因此,从右上角开始查找,就可以根据 target 和当前元素的大小关系来快速地缩小查找区间,每次减少一行或者一列的元素。当前元素的查找区间为左下角的所有元素。

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

相关文章:

  • 【计算思维】蓝桥杯STEMA 科技素养考试真题及解析 2
  • Qt+sqlite3使用事务提升插入效率
  • 【深度学习】不用Conda在PP飞桨Al Studio三个步骤安装永久PyTorch环境
  • SpringBoot:kaptcha生成验证码
  • C/C++ 使用API实现数据压缩与解压缩
  • Visual Studio连接unity编辑器_unity基础开发教程
  • 2023亚太杯数学建模B题思路分析 - 玻璃温室中的微气候法规
  • 轻量封装WebGPU渲染系统示例<37>- 多个局部点光源应用于非金属材质形成的效果(源码)
  • 设备状态监测与故障诊断系统的作用
  • 浮点数运算精度丢失,如何解决
  • 使用微信小程序openMapApp接口,报错问题解决openMapApp:fail invaild coord
  • 2023亚太杯数学建模思路 - 案例:粒子群算法
  • 【开源】基于JAVA的开放实验室管理系统
  • LeetCode48旋转图像
  • sql手工注入漏洞测试(MYSQL)-墨者-url信息
  • 52.seata分布式事务
  • HTML所有功能大汇总
  • 层次分析法--可以帮助你做决策的简单算法
  • docker启动链接sqlservr的镜像时报SSl错误
  • 力扣:175. 组合两个表(Python3)
  • 【libGDX】使用Mesh绘制矩形
  • X2Keyarch迁移工具实战 | 将CentOS高效迁移至浪潮云峦操作系统KeyarchOS
  • 基于VM虚拟机下Ubuntu18.04系统,Hadoop的安装与详细配置
  • 【图像分类】基于深度学习的垃圾分类系统的设计与实现(ResNet网络,附代码和数据集)
  • MFS分布式文件系统
  • Hadoop -hdfs的读写请求
  • 【c++Leetcode】206. Reverse Linked List
  • [项目管理-33/创业之路-87/管理者与领导者-127]:如何提升自己项目管理的能力和水平
  • 记录一次因内存不足而导致hiveserver2和namenode进程宕机的排查
  • c# 基础语法