【C语言】每日一题(杨氏矩阵查找数)
目录
- 杨氏矩阵介绍:
- 方法:
- 思路:
- 代码实现:
杨氏矩阵介绍:
既然在杨氏矩阵中查找数,那什么是杨氏矩阵呢?
矩阵的每行从
左到右是递增的,矩阵从上到下是递增的。
例如:

方法:
看到这题我们马上就可以想到
遍历一遍数组,但无疑这是效率最低的算法,就不展开详细来讲了
那还有什么样的算法呢?
我们发现这歌矩阵是特殊的:
左到右是递增的,矩阵从上到下是递增的
可以利用这个规律来做题
思路:
我们发现右上角的数比较特殊,是一行中最大的,一列中最小的,
可以用右上角的数字与target,也就是我们要找的目标数比较
设arr[x][y]为右上角元素
- 有三种情况:
- 1.当
arr[x][y]==target,我们返回 - 2.当
arr[x][y]>target,说明target有可能在这列
则我们需要令y--,向左进行缩减排查 - 3.当
arr[x][y]<target,说明target不可能在这一行,
需要x++,到下一行继续寻找
代码实现:
//我们假设找到了返回1,没找到返回1
int find(int arr[][3], int row, int col,int target)
{int x = 0;int y = col - 1;while (x <= row && y >= 0){if (arr[x][y] == target)return 1;else if (arr[x][y] < target)x++;elsey--;}return 0;//没找到时返回0
}
int main()
{int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };int target = 0;scanf("%d", &target);int ret = find(arr, 3, 3, target);if (ret == 1)printf("找到了\n");elseprintf("没找到\n");return 0;
}
那如果我们要实现返回下标的又该如何写呢?
在C语言中是不存在同时返回2个参数的方法的
不过
我们可以将两个数的地址传参,用解引用进行对原数的修改
代码实现:
void find(int arr[][3], int* row, int* col, int target)
{int x = 0;int y = 2;while (x <= row && y >= 0){if (arr[x][y] == target){*row = x;*col = y;return;}else if (arr[x][y] < target)x++;elsey--;}*row = -1;*col = -1;
}
int main()
{int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };int target = 0;scanf("%d", &target);int x = 3;int y = 3;find(arr, &x, &y, target);if (x != -1)printf("找到了,下标是%d %d\n", x, y);elseprintf("没找到\n");return 0;
}
欢迎大家纠错与讨论
相关文章:
【C语言】每日一题(杨氏矩阵查找数)
目录 杨氏矩阵介绍:方法:思路:代码实现: 杨氏矩阵介绍: 既然在杨氏矩阵中查找数,那什么是杨氏矩阵呢? 矩阵的每行从左到右是递增的,矩阵从上到下是递增的。 例如: 方法…...
探究SpringWeb对于请求的处理过程
探究目的 在路径归一化被提出后,越来越多的未授权漏洞被爆出,而这些未授权多半跟spring自身对路由分发的处理机制有关。今天就来探究一下到底spring处理了什么导致了才导致鉴权被绕过这样严重的问题。 DispatcherServlet介绍 首先在分析spring对请求处…...
如何使用Google Compute Engine入门指南快速创建和配置您的云虚拟机实例
文章目录 步骤1:创建 Google Cloud Platform(GCP)账户步骤2:设置 GCP 项目步骤3:启用 Google Compute Engine API步骤4:安装 Google Cloud SDK步骤5:创建虚拟机实例步骤6:连接到虚拟…...
springMVC中全局异常处理
前言: 当不同方法执行时,抛出相同异常。为了简约代码和避免重复使用try{}catch{}。此时使用统一异常处理。但局部的统一异常处理只能为所在类所调用。因此产生全局异常处理,该类中统一异常处理方法可以作用于整个controller。(以…...
【Nginx24】Nginx学习:压缩模块Gzip
Nginx学习:压缩模块Gzip 又是一个非常常见的模块,Gzip 现在也是事实上的 Web 应用压缩标准了。随便打开一个网站,在请求的响应头中都会看到 Content-Encoding: gzip 这样的内容,这就表明当前这个请求的页面或资源使用了 Gzip 压缩…...
我的私人笔记(zookeeper分布式安装)
分布式安装 1.安装前准备 (1)下载zookeeper:Index of /dist/zookeeper(当前使用为3.4.10版本) (2)安装JDK (3)拷贝zookeeper安装包到Linux系统下 (4)解压到指定目录 tar -xzvf zookeeper-3.4.10.tar.gz -C /opt/servers/ (5)修改名称 …...
小程序排名优化全攻略
随着小程序的快速发展,小程序之间的竞争也日益激烈。如何在竞争对手众多的环境下脱颖而出,通过小程序排名优化来提高曝光率和流量转化率,已成为许多小程序开发者和运营者关注的重点。本文将全面解析小程序排名优化的方法,让您可以更好地提升小程序的搜索排名。 【名即微】 小程…...
MySQL MHA
什么是 MHA MHA(Master High Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件 MHA 的出现就是解决MySQL 单点故障的问题 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作 MHA能在故障切换的过程中最大程度上…...
Java API速记手册(持续更新ing...)
诸神缄默不语-个人CSDN博文目录 之所以干这个事原因也很简单,因为我3年没写Java了,现在在复健。 因为我最近都在用Python,所以跟Python一样的部分我就不写了。 最基本的框架public class MainClass {public static void main(String[] args…...
FANUC机器人电气控制柜内部硬件电路和模块详细介绍
FANUC机器人电气控制柜内部硬件电路和模块详细介绍 PSU电源单元 通过背板传输了如下电源 +5 +2.0V +3.3 +24v +24E +15V -15V 主板--接口描述: 主板内部结构: 面板电路板: 引申一下 KM21 与 KM22 的作用它们分别接至操作面板上上的急停按...
LGFormer:LOCAL TO GLOBAL TRANSFORMER FOR VIDEO BASED 3D HUMAN POSE ESTIMATION
基于视频的三维人体姿态估计的局部到全局Transformer 作者:马海峰 *,陆克 * †,薛健 *,牛泽海 *,高鹏程† * 中国科学院大学工程学院,北京100049 鹏程实验室,深圳518055 来源:202…...
数据结构零基础入门篇(C语言实现)
前言:数据结构属于C学习中较难的一部分,对应学习者的要求较高,如基础不扎实,建议着重学习C语言中的指针和结构体,万丈高楼平地起。 目录: 一,链表 1)单链表的大致结构实现 2&…...
Hugging News #0904: 登陆 AWS Marketplace
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「Hugging News」。本期 Hugging News 有哪些有趣的消息࿰…...
Redis Redis的数据结构 - 通用命令 - String类型命令 - Hash类型命令
目录 Redis的数据结构: Redis命令: 通用命令:(通用指令是部分数据类型的,都可以使用的指令) KEYS查询命令: DEL删除命令: EXISTS判断命令: EXPIPE有效期设置命令&…...
vue中的几种name属性
vue中的几种name属性 组件名name name选项 export default{name:xxx } // 获取组件的name属性 this.$options.namevue-devtools调试工具里显示的组件名称; 未配置name选项,就是组件的文件名; vue3配置name通过defineOptions()函数 de…...
论文《面向大规模日志数据分析的自动化日志解析》翻译
论文《Towards Automated Log Parsing for Large-Scale Log Data Analysis》翻译 面向大规模日志数据分析的自动化日志解析翻译...
element-ui dialog弹窗 设置点击空白处不关闭
根据官网提供方法 场景:vue实现的网站有两个弹窗同时出现时,关闭报警,批量进度条弹窗也关闭了, 1、每一个页面都有可能出现的报警弹窗, 2、页面a批量操控硬件添加操作的进度条弹窗 开始以为是因为点击报警弹窗&#…...
第16节-PhotoShop基础课程-修复工具组-去水印
文章目录 前言1.污点修复画笔1.功能原理2.调整1.调整大小 Alt 右键 左右2.调整软硬 Alt 右键 上下 2.修复画笔工具 Alt 选取源1.常规2.选择图案 3.修补工具1.类型1.源2.目标 2.扩展 4.内容感知移动工具5.红眼工具 前言 去水印等 1.污点修复画笔 比如把下面的土豆(…...
conda的使用教程
conda的介绍 简单来说,conda软件就是来管理包的软件。以Python为例,在实际生活中,我们要处理多个不同的项目,因此,要安装不同的项目所需要的包,为了管理方便,conda就是用来打理不同项目的包&…...
客户端发现pod并与之通信
客户端发现pod并与之通信 pod需要一种寻找其他pod的方法来使用其他pod提供的服务,不像在没有Kubernetes的世界,系统管理员要在用户端配置文件中明确指出服务的精确IP地址 或者主机名来配置每个客户端应用,但同样的方法在Kubernetes中不适用 …...
慕尼黑电子展:洞察汽车电子、工业物联网与功率半导体技术趋势
1. 从慕尼黑看全球电子产业:一场技术与商业的“双向奔赴”又到了双数年的十一月,全球电子工程师和产业领袖的目光,不约而同地再次聚焦于德国慕尼黑。没错,Electronica——这个被誉为全球电子元器件行业“晴雨表”的顶级盛会&#…...
企业级长文档AI落地避坑指南,从PDF解析失真到语义断裂修复——Claude 2026六大隐性能力详解
更多请点击: https://intelliparadigm.com 第一章:PDF解析失真问题的根源与本质诊断 PDF 文件虽为“便携式文档格式”,但其内部结构高度异构——文本可能嵌入在图形路径中、字体被子集化或完全缺失、字符编码映射断裂,甚至存在跨…...
开源情报工具Openeir:自动化资产发现与关联分析实战指南
1. 项目概述:一个开源情报(OSINT)工具的诞生与使命 在信息爆炸的时代,数据本身不再是稀缺品,如何从海量、异构、碎片化的公开信息中,精准、高效地提取出有价值的情报,才是真正的挑战。无论是安全…...
开发AI智能体时利用Taotoken统一调度多模型提升任务完成率
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 开发AI智能体时利用Taotoken统一调度多模型提升任务完成率 在构建需要处理复杂、多模态任务的AI智能体时,单一模型的能…...
从零到精通:AI大模型学习路线图,手把手带你入门!
本文提供了一条从基础到高级的AI大模型学习路线图,涵盖数学与编程基础、机器学习入门、深度学习实践、大模型探索以及进阶应用等方面。文章推荐了丰富的学习资源,包括经典书籍、在线课程、实践项目和开源平台,旨在帮助新手小白系统学习AI大模…...
3分钟搞定浏览器二维码:Chrome QRCode插件的终极使用秘籍
3分钟搞定浏览器二维码:Chrome QRCode插件的终极使用秘籍 【免费下载链接】chrome-qrcode :zap: A Chrome plugin to Genrate QRCode of URL / Text, or Decode the QRcode in website. 一个Chrome浏览器插件,用于生成当前URL或者选中内容的二维码&#…...
如何在Windows任务栏实时监控股票行情:TrafficMonitor股票插件终极指南
如何在Windows任务栏实时监控股票行情:TrafficMonitor股票插件终极指南 【免费下载链接】TrafficMonitorPlugins 用于TrafficMonitor的插件 项目地址: https://gitcode.com/gh_mirrors/tr/TrafficMonitorPlugins 你是否曾经在工作时频繁切换窗口查看股票行情…...
终极百度网盘加速解决方案:BaiduPCS-Web完整使用指南
终极百度网盘加速解决方案:BaiduPCS-Web完整使用指南 【免费下载链接】baidupcs-web 项目地址: https://gitcode.com/gh_mirrors/ba/baidupcs-web 还在为百度网盘那令人抓狂的下载速度而烦恼吗?当下载进度条像蜗牛一样缓慢移动时,你是…...
纯Java实现Gemma大模型推理:在JVM中部署轻量级AI的工程实践
1. 项目概述:当Gemma遇上Java,一个轻量级AI推理的新选择最近在开源社区里,一个名为mukel/gemma4.java的项目引起了我的注意。作为一名长期在Java生态和机器学习边缘部署领域摸爬滚打的开发者,看到这个标题的第一反应是:…...
Super IO插件终极指南:5分钟掌握Blender文件处理革命
Super IO插件终极指南:5分钟掌握Blender文件处理革命 【免费下载链接】super_io blender addon for copy paste import / export 项目地址: https://gitcode.com/gh_mirrors/su/super_io Super IO是一款彻底改变Blender工作流程的革命性插件,它通…...
