DS二分查找_搜索二维矩阵

Description

使用二分查找法来判断m*n矩阵matrix中是否存在目标值target。

该矩阵有以下特性:

1. 每行中的整数从左到右升序排列;

2. 每行的第一个整数大于前一行的最后一个整数。

Input

第一行输入m和n,分别表示矩阵的行数和列数,接着输入m*n个整数。

接着,输入查找次数t,接着依次输入t个整数target。

Output

对于每次查找,若target存在于矩阵中,则输出true,否则输出false。

共输出t行。

Sample

#0
Input

Copy

3 4
-1 3 5 7
10 11 16 20
23 30 34 603
3
13
16
Output

Copy

true
false
true

题目要求:

搜索num在二维矩阵中是否存在,可以直接遍历全部元素,但是可以依据题目条件;
 

该矩阵有以下特性:

1. 每行中的整数从左到右升序排列;

2. 每行的第一个整数大于前一行的最后一个整数。

所以我们可以直接遍历每一行的第一个元素,判断是否存在这个元素,还有是否在这一行

思路:

1.num与第一列每个元素比较一下判断在第几行
2.遍历第几行看能不能查找到num

样例:

1.

2.

3.

关键代码:

判断数在第几行

判断哪一行是否存在着个数

全部代码:

#include <iostream>
#include <string.h>
using namespace std;
const int maxn = 1e2 + 10;
int shuzu[maxn][maxn];
int main()
{int n, m;while (cin >> n >> m){memset(shuzu, 0, sizeof(shuzu));for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++)///输入矩阵{cin >> shuzu[i][j];}}int t;cin >> t;while (t--){int num;cin >> num;///要查找的数int i = 1;for (i = 1; i <= n; i++){if (num <= shuzu[i][1])///num找到第一个大于他的数他就在那个数的前一行就是i-1行{break;}}if (i == 1)///i=1,说明比第一行最小的数都小,那就不存在这个数{cout << "false" << endl;continue;}int j;for (j = 1; j <= m; j++)///遍历i-1行看看有没有与num相等的数{if (shuzu[i - 1][j] == num){break;///找到就保留退出循环}}///tips:数组我开的比较大,所以j如果没找到会变成m+1,如果开的刚刚好的人会出现越界状况if (shuzu[i - 1][j] == num)///判断是否与num相等,因为也可能没找到。{cout << "true" << endl;}else{cout << "false" << endl;}}}return 0;
}

今天就小小水一下吧!
再见再见再见!!!

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

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

相关文章

python 自动发送邮件

对于工作中&#xff0c;如果每日需要发送具有规律性的邮件&#xff0c;采用python自动发送可以节约很多时间&#xff0c;提高效率。本文主要以腾讯企业邮箱为例&#xff0c;介绍python自动发送邮件&#xff08;含附件&#xff09;的功能。为保护隐私&#xff0c;代码中的邮箱及…

Edge调用Aria2下载

一、准备工作 1、Edge浏览器&#xff1a;Windows系统自带或点击下载&#xff1b;   2、Aria2 gui&#xff1a;点击github下载或自行搜索下载其他版本&#xff1b; 二、启动Aria2 gui 解压下载的Aria2 gui到任意目录&#xff0c;点击“Aria2c启动器”或“AriaNg启动器”皆可。…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《“无废”电–氢充能服务区多源微网优化运行模型》

这个文章标题涉及到“无废”电–氢充能服务区、多源微网和优化运行模型。下面我将对标题中的关键术语进行解读&#xff1a; “无废”电–氢充能服务区&#xff1a; 无废电&#xff08;Waste-free electricity&#xff09;&#xff1a; 这可能指的是通过某种方式生产的电力&…

从零开始学习 JS APL(六):完整指南和实例解析

学习目标&#xff1a; 1. 能够利用正则表达式校验输入信息的合法性 2. 具备利用正则表达式验证小兔鲜注册页面表单的能力 学习内容&#xff1a; 正则表达式 综合案例 阶段案例 学习时间&#xff1a; 周一至周五晚上 7 点—晚上9点周六上午 9 点-上午 11 点周日下午 3 点-下…

短视频系统设计:如何支持三千万用户同时在线看视频?

Java全能学习面试指南&#xff1a;https://javaxiaobear.cn 短视频&#xff08;short video&#xff09;通常时长在 15 分钟以内&#xff0c;主要是在移动智能终端上进行拍摄、美化编辑或加特效&#xff0c;并可以在网络社交平台上进行实时分享的一种新型视频形式。短视频具有时…

简单地将附件POST到Notes应用中

大家好&#xff0c;才是真的好。 这半年我们会讲很多开发知识&#xff0c;这篇紧接上篇《通过URL将HTML表单数据创建到Domino应用中》&#xff0c;讲述如何将附件POST到Note应用中。 原理是一样&#xff0c;首先&#xff0c;你得有一个表单&#xff0c;我们用html写一个&…

Android 缩减、混淆处理和优化应用

为了尽可能减小应用的大小&#xff0c;您应在发布 build 中启用缩减功能来移除不使用的代码和资源。启用缩减功能后&#xff0c;您还会受益于两项功能&#xff0c;一项是混淆处理功能&#xff0c;该功能会缩短应用的类和成员的名称&#xff1b;另一项是优化功能&#xff0c;该功…

云HIS:新一代云架构医院信息管理系统源码(java语言)

云HIS信息管理云平台&#xff0c;提供全方位的临床系统应用&#xff0c;是国内领先的以云计算为基础&#xff0c;以云计算赋能医疗机构&#xff0c;是颠覆传统医疗信息化业态的技术与模式创新&#xff0c;以SaaS方式&#xff0c;为医疗机构提供信息系统服务&#xff0c;满足从医…

Deep Learning(wu--84)调参、正则化、优化--改进深度神经网络

文章目录 2偏差和方差正则化梯度消失\爆炸权重初始化导数计算梯度检验OptimizationMini-Batch 梯度下降法指数加权平均偏差修正RMSpropAdam学习率衰减局部最优问题 调参BNsoftmax framework 2 偏差和方差 唔&#xff0c;这部分在机器学习里讲的更好点 训练集误差大&#xff…

【生信分析】基因组学导论

由于工作需要&#xff0c;现在开始跨行学生信&#xff01; 祝我成功 目标&#xff1a;通过一周的学习能对对不同高通量测序数据集&#xff08;RNA-seq、ChIP-seq、BS-seq 和多组学集成&#xff09;进行分析。 配置环境 if (!requireNamespace("BiocManager", quiet…

C语言能判断一个变量是int还是float吗?

C语言能判断一个变量是int还是float吗&#xff1f; 在开始前我有一些资料&#xff0c;是我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「C语言从专业入门到高级教程工具包」&#xff0c;点个关注&#xff0c;全部无偿共享给大家&#xff01;&…

初识消息队列

1、消息 消息&#xff08;Message&#xff09;是指在应用间传送的数据。消息可以非常简单&#xff0c;比如只包含文本字符串&#xff0c;也可以更复杂&#xff0c;可能包含嵌入对象。 2、消息队列 消息队列&#xff08;Message Queue&#xff09;是一种应用间的通信方式&#…

学生档案管理系统研究

摘 要 学生档案管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案&#xff0c;这种管理方式存在着许多缺点,如:效率低…

Ant Design正式推出企业级设计体系,抢先了解!

企业级产品设计体系AntDesign是蚂蚁集团体经过大量项目实践和总结&#xff0c;逐步打磨出的产品。随着这两年B端产品的逐渐白热化&#xff0c;越来越多的用户对更好的用户体验有了进一步的要求。 作为专门为国内生产研究团队量身定制的在线协作工具&#xff0c;设计师可以直接在…

Kubernetes(K8s)DashBoard的使用-11

DashBoard 之前在kubernetes中完成的所有操作都是通过命令行工具kubectl完成的。其实&#xff0c;为了提供更丰富的用户体验&#xff0c;kubernetes还开发了一个基于web的用户界面&#xff08;Dashboard&#xff09;。用户可以使用Dashboard部署容器化的应用&#xff0c;还可以…

【EI会议征稿中】第三届光学与机器视觉国际学术会议(ICOMV 2024)

第三届光学与机器视觉国际学术会议(ICOMV 2024) 2024 3rd International Conference on Optics and Machine Vision 第三届光学与机器视觉国际学术会议(ICOMV 2024)将于2024年1月19-21日在中国南昌举行。本次会议将围绕“光学”与"机器视觉”等研究领域展开讨论&#xf…

群晖Docker搭建HomeAssistant,结合内网穿透实现远程访问智能家居控制中心

使用群晖Docker搭建HomeAssistant并实现异地公网访问 文章目录 使用群晖Docker搭建HomeAssistant并实现异地公网访问一、下载HomeAssistant镜像二、内网穿透HomeAssistant&#xff0c;实现异地控制智能家居三、使用固定域名访问HomeAssistant HomeAssistant是一个可以控制 苹果…

java8 升级 java11

1.安装java11 1.1 安装参考 ​​​​​​LINUX安装JDK_liunx上安装ocean-CSDN博客 1.2 检查 java -version 2.Maven 项目pom文件修改 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEnc…

外包干了一个月,技术明显进步。。。。。

先说一下自己的情况&#xff0c;本科生生&#xff0c;19年通过校招进入南京某软件公司&#xff0c;干了接近3年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了3年的功能测试…