【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.mzph.cn/news/822352.shtml

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

相关文章

《Java面试自救指南》(专题七)系统场景设计(含分布式、微服务)

文章目录 负载均衡如何实现,有哪几种方式谈谈你对微服务的理解SOA和微服务的区别CAP理论和BASE定理分布式系统需要考虑哪些问题分布式系统如何实现数据一致性如何实现分布式锁你的服务挂了怎么处理限流算法原理和应用分布式ID生成策略一致性算法(2/3pc, paxos, Raft, ZAB)淘…

error: failed to push some refs to ‘https://gitee.com/zhao-zhimin12/gk.git‘

git push origin master发现以下报错: 解决办法: 一、强制推送 git push origin master -f &#xff08;加上 -f 就是强制&#xff09; 二、 先拉取最新代码&#xff0c;再推送 1.git pull origin master 2.git push origin master

TransformerFAM: Feedback attention is working memory

TransformerFAM: Feedback attention is working memory 相关链接&#xff1a;arxiv 关键字&#xff1a;Transformer、Feedback Attention Memory (FAM)、working memory、long-context tasks、scaling laws 摘要 TransformerFAM是一种新型的Transformer架构&#xff0c;它通过…

保护视力,从 CareUEyes 开始 —— 你的电脑护眼小助手

在数字化时代&#xff0c;我们的眼睛比以往任何时候都更频繁地面对屏幕。长时间盯着电脑工作&#xff0c;不仅影响视力&#xff0c;还可能导致眼疲劳和不适。今天&#xff0c;我要向大家推荐一款专为电脑用户设计的护眼软件——CareUEyes。 CareUEyes&#xff1a;你的视力守护者…

Linux系统中LVM与磁盘配额

目录 一、LVM逻辑卷管理 二、LVM的管理命令 物理卷管理 卷组管理 逻辑卷管理 *创建并使用LVM步骤 三、磁盘配额概述 实现磁盘限额的条件 Linux 磁盘限额的特点 四、磁盘配额管理 磁盘限额 一、LVM逻辑卷管理 能够在保持现有数据不变的情况下动态调整磁盘容量&#…

JavaScript数据类型 以及检测方法

在JavaScript中&#xff0c;数据类型是编程中非常重要的概念&#xff0c;它决定了数据的性质、如何存储以及如何操作这些数据。以下是JavaScript中的主要数据类型、它们的区别以及数据类型检测的方式的详细介绍。 JavaScript的主要数据类型 1. 原始数据类型&#xff08;Primi…

C++算法题 - 矩阵

目录 36. 有效的数独54. 螺旋矩阵48. 旋转图像73. 矩阵置零289. 生命游戏 36. 有效的数独 LeetCode_link 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现…

selenium反反爬虫,隐藏selenium特征

一、stealth.min.js 使用 用selenium爬网页时&#xff0c;常常碰到被检测到selenium &#xff0c;会被服务器直接判定为非法访问&#xff0c;这个时候就可以用stealth.min.js 来隐藏selenium特征&#xff0c;达到绕过检测的目的 from selenium import webdriver from seleniu…

Day 2 正式coding之基础模块的搭建

Day 2 正式coding之基础模块的搭建 这里会总结构建项目过程中遇到的问题&#xff0c;以及一些个人思考&#xff01;&#xff01; 学习方法&#xff1a; 1 github源码 文档 官网 2 内容复现 &#xff0c;实际操作 项目源码同步更新到github 欢迎大家star~ 后期会更新并上传前端…

Spring基础篇-快速面试笔记(速成版)

文章目录 1. Spring概述2. 控制反转&#xff08;IoC&#xff09;2.1 Spring声明Bean对象的方式2.2 Spring的Bean容器&#xff1a;BeanFactory2.3 Spring的Bean生命周期2.4 Spring的Bean的注入方式 3. Spring的事件监听器&#xff08;Event Listener&#xff09;3.1 Spring内置事…

自学Java的第二十四次笔记

一,方法重载 1.基本介绍 java 中允许同一个类中&#xff0c;多个同名方法的存在&#xff0c;但要求 形参列表不一致&#xff01; 比如&#xff1a; System.out.println(); out 是 PrintStream 类型 2.重载的好处 1) 减轻了起名的麻烦 2) 减轻了记名的麻烦 3.快速入门案…

Linux crontab练习之在系统中设定定时任务并优化定时任务

Linux crontab练习之在系统中设定定时任务并优化定时任务_2 要求 每天凌晨4点系统的设备使用信息并以邮件的方式放送到root邮箱中确保此任务为系统定时任务 脚本实现 #!/bin/bashdnf install postfix s-nail-14.9.22-6.el9.x86_64 -y &> /dev/nullsystemctl enable …

认识海康摄像头的编码信息以及使用等

认识海康摄像头的编码信息以及使用等 主要是来源一下文章&#xff1a; 海康摄像头、NVR命名规则-弱电新人学习&#xff01; - 知乎 大体是分了三类&#xff0c;当然海康的产品实在是有点多&#xff0c;没找见官方权威的解答&#xff0c;参考着先看看。 网络摄像机、网络球机…

浅谈Java JVM

Java虚拟机&#xff08;Java Virtual Machine&#xff0c;简称JVM&#xff09;是Java语言的核心组成部分&#xff0c;它是一个抽象的计算机&#xff0c;负责执行Java字节码指令。JVM是Java平台无关性的基石&#xff0c;它为Java代码提供了一个标准的运行环境&#xff0c;使Java…

golang-基础语法

make 和 new 的区别 make 和 new 都是用来分配内存 make 只能对 slice map channel 进行初始化结构体实例。new 可以对任意类型进行初始化make 用于分配数据对象的具体实例&#xff0c;new 用于分配数据类型的默认值&#xff0c;并返回该数据的指针。 new 出来的 slice 、ma…

【Nginx】MACOS 安装与部署

安装 【前景提要】 1.本文需要使用 Homebrew&#xff0c;没有的建议先安装一下&#xff0c;很好用 国内下载有不可抗力&#xff0c;想要快速下载可以参考这里 2.进入 Terminal&#xff08;终端/黑窗口&#xff09;&#xff0c;输入以下指令&#xff1a; brew install nginx我…

爬虫(小案例)

点开其中一个链接&#xff0c; http://desk.zol.com.cn/dongman/huoyingrenzhe/&#xff08;前面为浏览器自动补全&#xff0c;在代码里需要自己补全&#xff09; 可以看到图片的下载地址以及打开本图集下一张图片的链接 了解完网站的图片构造后动手写代码&#xff0c;我们筛…

html5测试题整理--针对标签的概念性,我们究竟还要学习哪些软件测试知识

先自我介绍一下&#xff0c;小编浙江大学毕业&#xff0c;去过华为、字节跳动等大厂&#xff0c;目前阿里P7 深知大多数程序员&#xff0c;想要提升技能&#xff0c;往往是自己摸索成长&#xff0c;但自己不成体系的自学效果低效又漫长&#xff0c;而且极易碰到天花板技术停滞…

Ubuntu20.04版本命令行设置挂载磁盘,并设置开机自动挂载

最近部署应用 系统是Ubuntu20.4版本的Linux系统&#xff0c;加了数据盘&#xff0c;需要格式化后挂载&#xff0c;记录下&#xff1a; Linux 数据盘挂载(采用 parted 分区工具)-格式化为 ext4 1. 初始化 Linux 数据盘 挂载数据盘后或者随实例创建时一并创建的数据盘&#xff…

使用SpringBoot3+Vue3开发公寓管理系统

项目介绍 公寓管理系统可以帮助公寓管理员更方便的进行管理房屋。功能包括系统管理、房间管理、租户管理、收租管理、房间家具管理、家具管理、维修管理、维修师傅管理、退房管理。 功能介绍 系统管理 用户管理 对系统管理员进行管理&#xff0c;新增管理员&#xff0c;修改…