C语言 ——— 在杨氏矩阵中查找具体的某个数

news2024/11/27 0:32:10

目录

何为杨氏矩阵

题目要求 

代码实现 


何为杨氏矩阵

可以把杨氏矩阵理解为一个二维数组,这个二维数组中的每一行从左到右是递增的,每一列从上到下是递增的


题目要求 

在杨氏矩阵中查找具体的某个数

要求:时间复杂度小于O(N)


代码实现 

#include<stdio.h>
int main()
{
	int arr[3][4] = { {1, 2, 3, 4},
					  {5, 6, 7, 8},
					  {9,10,11,12} };

	int input = 0;
	printf("请输入要查找的数:");
	scanf("%d", &input);

	// 二维数组的行数
	int row = sizeof(arr) / sizeof(arr[0]);
	// 二维数组的列数
	int col = sizeof(arr[0]) / sizeof(arr[0][0]);

	// 创建第一行的最后一个元素的下标
	int x = 0;
	int y = col - 1;

	// 查找
	while (y >= 0 && x < row)
	{
		// 二维数组的每一行的最后一个元素和input比较
		if (arr[x][y] < input)
		{
			// 每次去掉一行
			x++;
		}
		else if (arr[x][y] > input)
		{
			// 每次去掉一列
			y--;
		}
		else
		{
			printf("找到了,下标是:%d %d\n", x, y);
			break;
		}
	}

	if (y < 0 || x >= row)
	{
		printf("没找到\n");
	}

	return 0;
}

代码解析:

二维数组的每一行的最后一个元素,都是当前行里最大的,也是当前列里最小的

所以可以通过 input 直接和每一行的最后一个元素比较,当 input 大于当前行的最大的元素时,声明当前行里肯定没有 input ,当 input 小于当前行的最大的元素时,说明 input 可能在当前行,也有可能找不到,再通过控制列来查找 input

代码验证:

查找到时:

没查找到时:

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

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

相关文章

机器学习--混淆矩阵(Confusion Matrix)

一、混淆矩阵 True Negative (TN)&#xff1a; 真负类&#xff0c;样本的真实类别是负类&#xff0c;并且模型将其识别为负类&#xff0c;cm[0][0]。False Positive (FP)&#xff1a; 假正类&#xff0c;样本的真实类别是负类&#xff0c;但是模型将其识别为正类&#xff0c;cm…

Mutual_Voting_for_Ranking_3D_Correspondences

因为目前主要在看表示学习&#xff0c;所以配准了解较少&#xff0c;这篇文章就主要记录了一下相关工作和作者提出的非dl的模型&#xff0c;实验部分很简略&#xff0c;大家可以做参考。 Abstract 在摘要部分&#xff0c;作者介绍了一种新颖的相互投票方法&#xff0c;用于对…

孙宇晨所到之处,投资人闻风丧胆?WBTC被坑惨了?MakerDAO带头抗议!BitGo退场!

为实现WBTC跨多个司法管辖区的托管业务和冷储存业务多元化&#xff0c;加密货币托管公司BitGo于8月10日宣布&#xff0c;将与BiT Global创建合资企业对Wrapped Bitcoin&#xff08;WBTC&#xff09;业务进行多司法管辖区托管&#xff0c;且BitGo将成为新合资企业的少数股东。此…

满天飞的浮毛怎么去掉?最最高效解决浮毛的办法宠物空气净化器

作为一名呼吸科医生&#xff0c;我们的工作有着明显的“淡旺季”之分。旺季&#xff1a;一是秋冬季节雾霾加剧&#xff0c;引发呼吸道不适&#xff1b;二是宠物换毛期&#xff0c;导致家庭环境中浮毛增多&#xff0c;进而引发呼吸道过敏、炎症等问题。秋冬的雾霾是自然界的不可…

java基础进阶——log日志、类加载器、XML、单元测试、注解、枚举类

前言 这篇内容主要掌握的就是logback使用、理解类加载器、XML文件的编写&#xff0c;XML文档约束schema&#xff0c;用Dom4j解析XML文档&#xff0c;Xpath检索XML文档&#xff0c;完整使用Junit单元测试框架常用部分&#xff0c;注解的定义和使用&#xff0c;枚举类的定义和开发…

IDEA:Dangling Javadoc comment

JetBrains对JavaDocs的描述&#xff1a; Javadoc comments are usually placed above classes, methods, or fields in your source code. A Javadoc provides a description of the code element located under it and contains block tags marked with with specific metada…

0x6 风险评估

风险评估介绍 一、风险评估解决的问题 二、什么是风险评估 三、风险评估的目的 加强信息安全保障&#xff1a;信息安全风险评估是信息安全体系建设和管理的关键环节。通过评估&#xff0c;能够发现系统的主要问题和矛盾&#xff0c;并找到解决关键问题的办法。 认清安全环境与…

Linux的常用操作-02

一&#xff1a;Linux的系统目录结构 /bin bin是ary的缩写&#xff0c;这个目录存放着最经常用的命令 /boot&#xff1a;这里存放的是启动Linux时使用的一些核心文件&#xff0c;包括一些连接文件以及镜像文件。 /dev&#xff1a;dev是Device(设备)的缩写,该目录下存放的是Lin…

尚硅谷MYSQL高级篇(一)

存储引擎 support是看是否支持这些存储引擎 default是默认的 transactions是看一下是否支持事务 xa是看是否支持分布式事务 savepoint 保存点是支持部分事务的回滚

2024 年最受欢迎的数据库

数据库是我们与技术交互的支柱&#xff0c;以下是 2024 年最受开发人员喜爱的十大数据库引擎列表。 数据库很像管道。用户就像房主一样&#xff0c;不一定知道数据库的结构&#xff0c;最多只能看到一些片段&#xff0c;但他们的大部分活动都依赖于底层框架。系统的存亡取决于数…

你不知道的EPLAN 小窍门

1 图形拉伸 下面有五条直线,如果想同时改变直线的倾斜角度,这时候我们可以用到拉伸命令。 编辑>图形>拉伸 然后全选5根线的顶端,就可以自由的拖动变形了。 图形中还有一些修剪,倒角,圆角等CAD中常用命令,大家可以自己尝试下。 2 显示标示性的编号 打开EPLAN设置,…

# 利刃出鞘_Tomcat 核心原理解析(六)

利刃出鞘_Tomcat 核心原理解析&#xff08;六&#xff09; 一、Tomcat专题 - 内容 1、Web 应用配置 2、Tomcat 管理配置 3、JVM 配置 4、Tomcat 集群 5、Tomcat 安全 6、Tomcat 性能调优 7、Tomcat 附加功能。 二、Tomcat专题 - Web应用配置介绍 1、Web.xml 配置文件…

人工智能在病理组学领域的最新进展|文献速递·24-08-09

小罗碎碎念 本期推文主题&#xff1a;人工智能在病理组学领域的最新进展 这一期推文和往期不太一样——往期几乎都是顶刊&#xff0c;而这一期选了一些分数不那么高的文章。这样做有两个原因&#xff1a; 验证一下在IF较低的期刊中能否找到灵感对比一下&#xff0c;期刊之间的…

子进程与父进程运行不同程序

往文件里面写内容&#xff0c;fork在open之前&#xff0c;会接着父进程写的内容写,继承父进程的状态信息&#xff0c;文件描述符一直往下 往文件里面写内容&#xff0c;fork在open之后&#xff0c;分别打开文件&#xff0c;后运行的会覆盖先运行的内容 让低8位有效 进程的终止…

LVS-NAT + LVS-DR

LVS 现在lvs已经是linux内核标准的一部分&#xff0c;使用lvs可以达到的技术目标是&#xff1a;通过linux达到负载均衡技术和linux操作系统实现一个高性能高可用的linux服务器集群&#xff0c;他具有良好的可靠性&#xff0c;可延展性和可操作性&#xff0c;从而以低廉的成本实…

AQS的同步队列和条件队列原理

文章目录 二者区别实现原理同步队列原码-内部类Node源码-获取锁源码-释放锁条件队列原码-内部类Node源码-等待源码-唤醒Demo-比较典型的条件队列使用场景二者区别 首先,AQS中的 同步队列 和 条件队列 是两种不同队列: 目的不同:同步队列主要用于实现锁机制(也就是锁的获取…

4.3.2 C++ 平面拟合的实现

4.3.2 C 平面拟合的实现 参考教程&#xff1a; gaoxiang12/slam_in_autonomous_driving: 《自动驾驶中的SLAM技术》对应开源代码 (github.com) Eigen打印输出_打印eigen矩阵-CSDN博客 1. 编写 Plane fitting 1.1 创建文件夹 通过终端创建一个名为Plane_fitting的文件夹以保…

Cookie和Session的区别(详细讲解)

Session 和 Cookie 的区别 在网络通信过程中&#xff0c;使用的是HTTP协议&#xff0c;它是一种无状态协议&#xff0c;比如&#xff0c;在登录一个网站时&#xff0c;登录成功后&#xff0c;之后在访问这个网站的其他页面时&#xff0c;都需要重新登录&#xff0c;无法识别出…

[240812] X-CMD 发布 v0.4.5:更新 gtb、cd、chat、hashdir 模块功能

目录 &#x1f4c3;Changelog✨ gtb✨ cd✨ chat✨ hashdir &#x1f4c3;Changelog ✨ gtb 调整了 fzf 预览窗口中书籍文本的显示效果&#xff0c;通过识别文本中的特殊字符、日期、章节标题等信息&#xff0c;为其赋予不同的颜色。 ✨ cd cd 模块新增功能&#xff1a;在找…

网络编程day03 20240813

一、相关练习 1、通过w(红色臂角度增大)s&#xff08;红色臂角度减小&#xff09;d&#xff08;蓝色臂角度增大&#xff09;a&#xff08;蓝色臂角度减小&#xff09;按键控制机械臂 机械臂需要发送16进制数&#xff0c;共5个字节&#xff0c;协议如下&#xff1a; 0xff 0x0…