在二维数组中查找一个数
在一个二维数组中,每一行都按照从左到右递增的顺序排列,每一列也按照从上到下递增的顺序排列。在这样一个序列中查找一个数
1 2 8 9
2 4 9 12
4 7 10 13
6 8 11 15
例如查找7,就从第一行的最左边查找,9大于7,则9以下的也不用再查找,就从8开始,8大于7,8以下的就不用再查找,从2开始查找,2小于7,那么这一行2左边的就不用再查找,就从4开始,4小于7,那么这一行4左边的也不用再查找,从4下面行开始查找,代码如下:
bool Find(int *a, int rows, int cols, int key)
{
int i = 0;
int j = cols;
while (i<rows && j >= 0)
{
if (a[i*cols + j - 1] == key)
{
return true;
}
else if (a[i*cols + j - 1] > key)
{
j--;
}
else
{
i++;
}
}
return false;
}
int main()
{
int a[4][4] = { { 1, 2, 8, 9 }, { 2, 4, 9, 12 }, { 4, 7, 10, 13 }, { 6, 8, 11, 15 } };
int ret = Find(a, 4, 4, 18);
if (ret > 0)
{
printf("yes");
}
else
{
printf("no");
}
system("pause");
return 0;
}
转载于:https://blog.51cto.com/10810512/1774616
在二维数组中查找一个数相关推荐
- 数据结构与算法--数组:二维数组中查找
数组 数组最简单的是数据结构,占据一整块连续的内存并按照顺序存储数据,创建数组时候,我们需要首先指定数组的容量大小,然后根据大小分配内存.即使我们只在数组中存储一个元素,亚需要为所有数据预先分配内存, ...
- 剑指offer之二维数组中查找
1 问题 二维数组中查找: 在一个二维数组钟,每一行都按照从左到右递增得顺序排列,每一列 都按照从上往下得递增排列,请完成一个函数,输入这样得一个二维数组和一个 整数,判断数组是否含有该整数 列如: ...
- 二维数组中查找指定数据
二维数组中查找指定数据 数组中元素每行按照从左到右递增,每列从上到下递增 bool Find(int* arr, int rows, int columns, int data) {bool foun ...
- 每天一道LeetCode-----在有序的二维数组中查找某个元素
原题链接Search a 2D Matrix 判断一个二维数组中是否存在某个值 该数组满足 每一行元素按从左到右递增顺序排列 当前行的第一个元素大于上一行的最后一个元素 假设二维数组的维度是m × n ...
- php查询二维数组中的值,如何在二维数组中查找一个指定的数值
最近整理之前自己学习Java时的一些代码笔记,可能都是一些比较基础的Java知识,在这里只是给需要的人参考一下. 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排 ...
- 在二维数组中查找一个数字
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
- php 二维数组中查找,二维数组中的查找
一.给出的是方阵 [[1,6,7,8], [3,7,8,9], [9,10,11,12], [12,13,14,15]] 这种情况非常简单,可知对角线元素应为查找元素,如果target大于对角线上某个 ...
- 隔一段时间查找一次 golang_剑指 offer-04 二维数组中的查找
算法名称:二维数组中的查找 题目内容:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...
- 二维数组中的查找--元素从左到右递增,从上到下递增
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 首先选取数组中右上角的数字.如果 ...
最新文章
- 只此一招,全屏操作从此易如反掌
- 符乐安:2020年短视频创作将迎来新的高峰
- 带Spring Boot的GWT
- REST服务的自动化测试
- linux shell express,Linux下使Shell 命令脱离终端在后台运行
- android 不同项目代码合并在一块,android - 是否可以将两个(正在积极开发中的)Android应用程序模块合并到同一个Android Studio项目中? - 堆栈内存溢出...
- JavaSE08:详解多线程(超详细)
- 【Android】LMK 工作机制
- 【预测模型】基于matlab GUI BP神经网络预测【含Matlab源码 934期】
- Apollo添加新的can通信接口的GPS设备
- 苹果回应巴西政府禁止销售不附赠充电器的iPhone;小米造车新进展;国内首家以数据服务为核心的央企数据中台上线 | EA周报...
- 虚拟机批量克隆工具_如何使用老毛桃winpe进行克隆磁盘?
- lisp弧度转度分秒_度分秒转化成弧度的函数代码
- python取excel单元格数值_python读取excel文件单元格中的数据返回类型
- OSI体系结构——数据链路层详解
- 蜗牛星际 完美安装 ESXI6.7 全面教程(一)
- matlab 单边频率谱,频谱图如何把双边谱改成单边谱?
- 解决计算机主机与打印机共享,教您解决打印机无法共享的方法
- 【元胞自动机】元胞自动机交通事故通行【含Matlab源码 1345期】
- dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib