C语言二维数组找出交集,【leetcode C语言实现】剑指 Offer 04. 二维数组中的查找...

题目描述

在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

示例:

现有矩阵 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]

]

给定 target = 5,返回 true。

给定 target = 20,返回 false。

限制:

0 <= n <= 1000

0 <= m <= 1000

解题思路

由于每行中的数据从左到右递增,每一列从上往下递减,因此右上角的元素是其所在行的最大元素和所在列的最小元素,同理,左下角的元素是其所在列的最大元素和所在行的最小元素。直接将目标值与右上角元素或者左下角元素进行比较可以大大提高查找效率。

代码

bool findNumberIn2DArray(int **matrix, int matrixSize, int *matrixColSize, int target)

{

int row = 0;

int col = *matrixColSize - 1;

if(matrix == NULL || matrixSize == 0 || matrixColSize == 0)

{

return false;

}

while((row < matrixSize) && (col >= 0))

{

if(matrix[row][col] > target)

{

col--;

}

else if(matrix[row][col] < target)

{

row++;

}

else

{

return true;

}

}

return false;

}

执行结果

时间复杂度:O(M+N),空间复杂度:O(1)。

cef411a1e047

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

知识图谱从哪里来:实体关系抽取的现状与未来

来源&#xff1a;知乎&#xff08;zibuyu9&#xff09;作者&#xff1a;韩旭、高天宇、刘知远最近几年深度学习引发的人工智能浪潮席卷全球&#xff0c;在互联网普及带来的海量数据资源和摩尔定律支配下飞速提升的算力资源双重加持下&#xff0c;深度学习深入影响了自然语言处理…

线条边框简笔画图片大全_超治愈萌系手帐素材大全 美食旅游花草人物花边都备齐了...

现代人每天都生活在一个充满焦灼感的空气中&#xff0c;成年人的世界里&#xff0c;每个人都不容易。不论是生活还是工作&#xff0c;都充满了各种挫折。很少有人能一帆风顺&#xff0c;为学习、为工作、为家庭、为感情、我们总会在坎坎坷坷中成长&#xff0c;难免会觉得焦虑。…

红米android版本,微信红米低版本下载

微信红米低版本是适用于红米手机的低版本微信软件&#xff0c;此版本为7.0.0版&#xff0c;安装包不到一百兆&#xff0c;该有的功能也都挺齐全&#xff0c;很多用户对于微信新版本的内存占用不堪重负&#xff0c;那么这个历史低版本就很适合你&#xff0c;红米手机也能轻松兼容…

《2018-2019世界智能手机AI智商测试报告》发布会将在京举办

《2018-2019世界手机AI智商测试报告》发布会将于2019年11月21日在北京举行&#xff0c;本次发布会由中国科学院虚拟经济与数据科学研究中心、中国科学院大数据挖掘与知识管理重点实验室和天府大数据国际战略与技术研究院联合主办。智能手机作为人们与外界即时连接的终端设备&am…

软件需求分析文档模板_小议管理软件需求分析

从事管理软件设计&#xff0c;一般都是从用户需求分析开始。从事软件工作的&#xff0c;大概谁都知道需求分析的重要性&#xff0c;可能大部分人都吃过需求分析不充分的亏。兵法云&#xff0c;“谋定而后动”。对一个项目而言&#xff0c;需求分析应该是“谋”的一部分&#xf…

python日期格式转换_python中有关时间日期格式转换问题

每次遇到pandas的dataframe某列日期格式问题总会哉坑&#xff0c;下面记录一下常用时间日期函数.... 1、字符串转化为日期 str—>date import datetime date_str 2006-01-03 date_ datetime.datetime.strptime(date_str,%Y-&m-%d) 这是单个字符串的转化&#xff0c;其…

38页PPT深度解析:半导体设备产业链全景图

来源&#xff1a;平安证券要点摘要&#xff1a;1、我国半导体设备市场空间大&#xff0c;增长动力强劲。半导体设备主要用于半导体制造和封测流程&#xff0c;分为晶圆加工设备&#xff08;核心为光刻机、刻蚀机、薄膜沉积设备&#xff09;、封装设备和检测设备。2018年全球半导…

XGBoost参数调优完全指南(附Python代码)

XGBoost参数调优完全指南&#xff08;附Python代码&#xff09;&#xff1a;http://www.2cto.com/kf/201607/528771.html https://www.zhihu.com/question/41354392 【以下转自知乎】 https://www.zhihu.com/question/45487317 为什么xgboost/gbdt在调参时为什么树的深度很少就…

科技基建,自主创芯——详解全球半导体制造行业格局

来源&#xff1a;芯潮今天推荐一份报告&#xff0c;详解全球半导体制造行业格局&#xff0c;本报告从以下几个角度进行分析&#xff1a;一、全球半导体制造市场规模及竞争格局全球半导体制造市场及行业格局中国半导体制造行业情况二、半导体制造制程技术分析28纳米是生命周期相…

python按行读取文件取消空白行_python去掉空白行的多种实现代码

测试代码 jb51.txt 1:www.jb51.net 2:www.jb51.net 3:www.jb51.net 4:www.jb51.net 5:www.jb51.net 6:www.jb51.net 7:www.jb51.net 8:www.jb51.net 9:www.jb51.net 10:www.jb51.net 11:www.jb51.net 12:www.jb51.net 13:www.jb51.net 14:www.jb51.net 15:www.jb51.net 16:www.…

android 大视图风格通知栏,Android中使用Notification实现宽视图通知栏(Notification示例二)...

Notification是在你的应用常规界面以外展现的消息。当app让系统发送一个消息的时候&#xff0c;消息首先以图表的形式显示在通知栏。要查看消息的详情须要进入通知抽屉(notificationdrawer)中查看。通知栏和通知抽屉html(notificationdrawer)都是系统层面控制的&#xff0c;你能…

计算机、数学、运筹学等领域32个重要算法

来源&#xff1a; 深度学习与机器视觉奥地利符号计算研究所&#xff08;Research Institute for Symbolic Computation&#xff0c;简称RISC&#xff09;的Christoph Koutschan博士在自己的页面上发布了一篇文章&#xff0c;提到他做了一个调查&#xff0c;参与者大多数是计算机…

怎么用python表白_如何正确使用Python进行表白?这是个值得思考的问题!

提到程序员&#xff0c; 可能每个同学都认识一个—— 爱穿格子衬衫、冲锋衣&#xff0c;爱宅着敲代码的程序员或者准程序员&#xff0c; 他们仿佛永远在bug和debug的路上&#xff0c; 还总爱自黑自己是“单身狗”&#xff0c;如何正确使用Python进行表白&#xff1f;这是个值得…

iOS 高阶

1.UIStoryBoard 2. segue跳转传值 3. UIColor配色 //1. 十进制配色 [UIColor colorWithRed:163.0/255.0 green:148.0/255.0 blue:128.0/255.0 alpha:1.0]; //2. 设置16进制颜色(同上) [UIColor colorWithRed:0xba/255.0 green:0x21/255.0 blue:0xd5/255.0 alpha:1.0]; 4. XML解…

android 顶部标签切换,Android实现底部切换标签

本文实例为大家分享了Android实现底部切换标签的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下实现底部通用切换标签 &#xff0c;嵌套Fragment&#xff0c;方便自定义布局自定义控件&#xff1a;widget_tab_view.xmlandroid:layout_width"match_parent"a…

simulink显示多个数据_Matlab/Simulink与自动驾驶(ADAS)算法开发

Simulink是如何存在自动驾驶的开发过程中&#xff1f;废话少讲&#xff0c;让咱们开始娓娓道来&#xff01;自动驾驶的开发架构是什么&#xff1f;自动驾驶软件开发基础的架构&#xff0c;逃不出我们经常所说的三大法宝&#xff0c;感知--- 决策(规划)--- 执行(控制)&#xff0…

数字孪生智慧城市建设加速5G+产业AI的应用,全流程数据透明化及实时可控成为升级的大方向,构建智慧城市生态圈在路上!...

本视频为深圳市副市长和IDG领导在高交会智慧城市论坛上的讲话。来源&#xff1a;北京物联网智能技术应用协会 本期正文Digital Twin数字孪生&#xff1a;是充分利用物理模型、传感器更新、运行历史等数据&#xff0c;集成多学科、多物理量、多尺度、多概率的仿真过程&#xff0…

Linux部署Apache ActiveMQ 5.14.1

Linux部署Apache ActiveMQ 5.14.1 简单记一下&#xff0c;下载地址 http://activemq.apache.org/download.html 一、安装JDK7以上&#xff0c;官方说明&#xff1a;http://activemq.apache.org/version-5-getting-started.html 二、创建目录&#xff1a; cd /usrmkdir activemq…

python做excel表格柱状图_Python Excel 绘制柱形图

原博文 2019-11-19 22:07 − 本文主要讲述如何使用Python操作Excel绘制柱形图。 相关代码请参考 https://github.com/RustFisher/python-playground 本文链接&#xff1a;https://www.rustfisher.com/2019/11/19/Python/Python-op-ex... 相关推荐 2019-12-08 20:02 − 利用Pyth…

管理口地址 ibm_WAN口有IP地址上不了网如何解决 WAN口有IP地址上不了网解决方法【详解】...

设置好路由器WAN口PPPoE拨号后&#xff0c;WAN口状态已经显示获得到IP地址&#xff0c;如下图&#xff1a;WAN口有IP地址上不了网怎么办但是终端设备连接路由器无法上网&#xff0c;请参考以下步骤排查。电脑需要设置为自动获得IP地址&#xff0c;如果您不清楚如何设置&#xf…