当前位置: 首页 > news >正文

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

目录

何为杨氏矩阵

题目要求 

代码实现 


何为杨氏矩阵

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


题目要求 

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

要求:时间复杂度小于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

代码验证:

查找到时:

没查找到时:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • IT管理:我与IT的故事1--努力是成功的序曲
  • Redis缓存配置
  • 大数据治理平台建设与应用解决方案(41页PPT)
  • JAVA解压文件到目标目录
  • Nginx系列-负载均衡
  • 思科静态路由配置1
  • 实训日记day27
  • 热搜|“月薪4300一个月的存钱计划”,普通人如何实现财富自由?
  • C:每日一题:单身狗
  • 汇昌联信做拼多多店铺如何运营?
  • 微信小程序 for,if语法 事件对象,事件传参
  • 岗位信息采集全攻略:两种方法快速获取招聘信息
  • Mariadb数据库本机无密码登录的问题解决
  • Go语言排序艺术:sort包的精妙运用
  • 数据集与数据库:有什么区别?
  • JavaScript 如何正确处理 Unicode 编码问题!
  • Android Studio:GIT提交项目到远程仓库
  • CentOS从零开始部署Nodejs项目
  • css选择器
  • Git的一些常用操作
  • Gradle 5.0 正式版发布
  • Idea+maven+scala构建包并在spark on yarn 运行
  • leetcode46 Permutation 排列组合
  • React 快速上手 - 07 前端路由 react-router
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 程序员该如何有效的找工作?
  • 解决iview多表头动态更改列元素发生的错误
  • 聚簇索引和非聚簇索引
  • 小而合理的前端理论:rscss和rsjs
  • 学习JavaScript数据结构与算法 — 树
  • 一个JAVA程序员成长之路分享
  • 因为阿里,他们成了“杭漂”
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 智能合约开发环境搭建及Hello World合约
  • 追踪解析 FutureTask 源码
  • kubernetes资源对象--ingress
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 国内开源镜像站点
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • !!Dom4j 学习笔记
  • # Panda3d 碰撞检测系统介绍
  • ###C语言程序设计-----C语言学习(6)#
  • (06)Hive——正则表达式
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)计算机毕业设计大学生兼职系统
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表