在一个二维数组中,每一行都按照从左到右递增的顺序排列,每一列也按照从上到下递增的顺序排列。在这样一个序列中查找一个数

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

在二维数组中查找一个数相关推荐

  1. 数据结构与算法--数组:二维数组中查找

    数组 数组最简单的是数据结构,占据一整块连续的内存并按照顺序存储数据,创建数组时候,我们需要首先指定数组的容量大小,然后根据大小分配内存.即使我们只在数组中存储一个元素,亚需要为所有数据预先分配内存, ...

  2. 剑指offer之二维数组中查找

    1 问题 二维数组中查找: 在一个二维数组钟,每一行都按照从左到右递增得顺序排列,每一列 都按照从上往下得递增排列,请完成一个函数,输入这样得一个二维数组和一个 整数,判断数组是否含有该整数 列如: ...

  3. 二维数组中查找指定数据

    二维数组中查找指定数据 数组中元素每行按照从左到右递增,每列从上到下递增 bool Find(int* arr, int rows, int columns, int data) {bool foun ...

  4. 每天一道LeetCode-----在有序的二维数组中查找某个元素

    原题链接Search a 2D Matrix 判断一个二维数组中是否存在某个值 该数组满足 每一行元素按从左到右递增顺序排列 当前行的第一个元素大于上一行的最后一个元素 假设二维数组的维度是m × n ...

  5. php查询二维数组中的值,如何在二维数组中查找一个指定的数值

    最近整理之前自己学习Java时的一些代码笔记,可能都是一些比较基础的Java知识,在这里只是给需要的人参考一下. 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排 ...

  6. 在二维数组中查找一个数字

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  7. php 二维数组中查找,二维数组中的查找

    一.给出的是方阵 [[1,6,7,8], [3,7,8,9], [9,10,11,12], [12,13,14,15]] 这种情况非常简单,可知对角线元素应为查找元素,如果target大于对角线上某个 ...

  8. 隔一段时间查找一次 golang_剑指 offer-04 二维数组中的查找

    算法名称:二维数组中的查找 题目内容:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...

  9. 二维数组中的查找--元素从左到右递增,从上到下递增

    在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 首先选取数组中右上角的数字.如果 ...

最新文章

  1. 只此一招,全屏操作从此易如反掌
  2. 符乐安:2020年短视频创作将迎来新的高峰
  3. 带Spring Boot的GWT
  4. REST服务的自动化测试
  5. linux shell express,Linux下使Shell 命令脱离终端在后台运行
  6. android 不同项目代码合并在一块,android - 是否可以将两个(正在积极开发中的)Android应用程序模块合并到同一个Android Studio项目中? - 堆栈内存溢出...
  7. JavaSE08:详解多线程(超详细)
  8. 【Android】LMK 工作机制
  9. 【预测模型】基于matlab GUI BP神经网络预测【含Matlab源码 934期】
  10. Apollo添加新的can通信接口的GPS设备
  11. 苹果回应巴西政府禁止销售不附赠充电器的iPhone;小米造车新进展;国内首家以数据服务为核心的央企数据中台上线 | EA周报...
  12. 虚拟机批量克隆工具_如何使用老毛桃winpe进行克隆磁盘?
  13. lisp弧度转度分秒_度分秒转化成弧度的函数代码
  14. python取excel单元格数值_python读取excel文件单元格中的数据返回类型
  15. OSI体系结构——数据链路层详解
  16. 蜗牛星际 完美安装 ESXI6.7 全面教程(一)
  17. matlab 单边频率谱,频谱图如何把双边谱改成单边谱?
  18. 解决计算机主机与打印机共享,教您解决打印机无法共享的方法
  19. 【元胞自动机】元胞自动机交通事故通行【含Matlab源码 1345期】
  20. dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib

热门文章

  1. 深度工作:充分使用每一份脑力
  2. 三、spring boot 1.5.4 web容器定制(端口号等修改)
  3. Android中用GridView实现九宫格的两种方法(转)
  4. eclipse中的汉字极小的解决方案(转载)
  5. 今天我注册博客园了,我很开心!
  6. 结构体与共用体(联合体)
  7. 发布到服务器接口404_接口测试怎么做?
  8. Java面试题之有没有有顺序的Map实现类,如果有,他们是怎么实现有序的?
  9. redisTemplate进行自增操作例子
  10. APP技巧:一次性给手机充电到100%最佳?大部分人都做错了