【C语言】每日一题,快速提升(2)!

🔥博客主页🔥:【 坊钰_CSDN博客 】

欢迎各位点赞👍评论✍收藏⭐

 题目:杨氏矩阵

有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在

解答:

1. 我们仔细分析,不难发现,对于杨氏矩阵老说,右上角和左下角的元素是有特点的。

2. 右上角的元素是一行中最大的,一列中最小的。

3. 左下角的元素是一行中最小的,是一列中最大的。所以我们可以从右上角或者左下角开始查找。

比如:从右上角开始查找的时候,右上角的元素比我们要查找元素小,我们就可以去掉右上角元素所在的这一行;右上角的元素比我们要查找的元素大,我们就可以去掉右上角元素所在的这一列。然后依然找右上角的元素继续和要查找的元素与比较。这样每一次比较去掉一行或者去掉一列;

代码:

#include <stdio.h>int find(int arr[][3], int x, int y, int key) //第一个参数的类型需要调整
{int i = 0, j = y - 1; //从右上角开始遍历while (j >= 0 && i < x){if (arr[i][j] < key) //比我大就向下{i++;}else if (arr[i][j] > key) //比我小就向左{j--;}else{return 1;}}return 0;
}int main()
{int arr[][3] = { {1, 2, 3},{4, 5, 6}, {7, 8, 9} }; //一个示例if (find(arr, 3, 3, 5)){printf("It has been found!\n");}else{printf("It hasn't been found!\n");}return 0;
}

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

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

相关文章

性能测试 Jmeter 非 GUI 模式 -CLI 命令详解

我们在使用Jmeter做性能测试的时候&#xff0c;大部分同学用的是图形化界面进行脚本编写和执行性能测试的。但是其实真正在公司执行性能测试的时候&#xff0c;我们基本上不会用图形化界面去执行测试&#xff0c;这是因为工具渲染这些图形本身会让Jmeter结果存在很多不稳定的因…

什么样的开放式耳机好用?五大红榜超值机型力荐!

今年&#xff0c;市场上涌现出众多备受瞩目的开放式耳机产品&#xff0c;面对如此众多的选择&#xff0c;如何挑选出一款性能卓越、音质出色的开放式耳机&#xff0c;无疑成为了消费者们关注的焦点。传统的入耳式耳机虽然有其优势&#xff0c;但长时间佩戴往往会导致耳朵红肿胀…

STM32的GPIO端口的八种模式解析

目录 STM32的GPIO端口的八种模式解析 一、上拉输入模式 二、下拉输入模式 三、浮空输入模式 四、模拟输入模式 五、推挽输出模式 六、开漏输出模式 七、复用推挽输出模式 八、复用开漏输出模式 STM32的GPIO端口的八种模式解析 在学习STM32的过程中&#xff0c;GPIO端口…

LeetCode——965. 单值二叉树

题目- 力扣&#xff08;LeetCode&#xff09; 如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时&#xff0c;才返回 true&#xff1b;否则返回 false。 示例 1&#xff1a; 输入&#xff1a;[1,1,1,1,1,null,1] 输出&a…

YOLO-World: Real-Time Open-Vocabulary Object Detection 简介+安装+运行+训练(持续更新)

前言 YOLO_WORLD太牛了&#xff01;&#xff01;众所周知&#xff0c;传统是视觉目标检测一旦训练好后&#xff0c;如果我们需要增加新的识别目标的话&#xff0c;必须得重新训练模型。在生产中如果经常要新增检测目标&#xff0c;对时效性影响很大&#xff0c;而且随着数据量…

算法思想总结:链表

一、链表的常见技巧总结 二、两数相加 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {//利用t来存进位信息int t0;ListNode*newheadnew ListNode(0);//创建一个哨兵节点&#xff0c;方便尾插List…

pip如何查看Python某个包已发行所有版本号?

以matplotlib包为例子&#xff0c; pip install matplotlib6666 6666只是胡乱输入的一个数&#xff0c;反正输入任意一个不像版本号的数字都可以&#xff5e; matplotlib所有版本号如下&#xff0c; 0.86, 0.86.1, 0.86.2, 0.91.0, 0.91.1, 1.0.1, 1.1.0, 1.1.1, 1.2.0, 1.2.1…

女上司问我:误删除PG百万条数据,可以闪回吗?

作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验 擅长主流数据Oracle、MySQL、PG、openGauss运维 备份恢复&#xff0c;安装迁移&#xff0c;性能优化、故障应急处理等可提供技术业务&#xff1a; 1.DB故障处理/疑难杂症远程支援 2.Mysql/PG/Oracl…

在 Vuex 中使用 TypeScript 时,如何有效地处理异步 action 和 mutation?

在 Vuex 中使用 TypeScript 处理异步 action 和 mutation 时&#xff0c;可以利用 TypeScript 的类型系统来确保类型安全和提高代码的可读性。以下是一些有效处理异步操作的方法&#xff1a; 定义异步 action 的类型&#xff1a; 使用 TypeScript 的泛型来定义 action 的 conte…

【RPC】

1. 什么是RPC框架 RPC(Remote Procedure Call&#xff0c;远程过程调用)是一种计算机通信协议&#xff0c;允许调用不同进程空间的程序。RPC 的客户端和服务器可以在一台机器上&#xff0c;也可以在不同的机器上。程序员使用时&#xff0c;就像调用本地程序一样&#xff0c;无…

在BIM建筑中你一定用过的功能

AMRT3D数字孪生引擎https://www.amrt3d.com/#/ 为了让用户获得更好的使用体验&#xff0c;引擎需要经过反复的迭代和优化。在这背后&#xff0c;是AMRT3D团队怀揣匠心&#xff0c;扎根市场应用&#xff0c;并不断推出系列“亮点”功能。此次V1.3.1版本&#xff0c;更是针对BIM…

高效可扩展,使用Dask进行大数据分析

大家好&#xff0c;Dask技术作为并行计算领域的创新力量&#xff0c;正在重塑大数据的处理模式。这项开源项目为Python语言带来了强大的并行计算能力&#xff0c;突破了传统数据处理在扩展性和性能上的瓶颈。 本文将介绍Dask的发展历程、架构设计&#xff0c;并分析其在大数据…