【题目描述】

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否存在该整数。

【解决方案】

每次根据右上角的一个数arr[i][j]和所求整数num的比较结果,来排除一行(或一列)的整数。

arr[i][j] == num,数组中数组中存在该整数;

arr[i][j] > num,arr[i][j]所在列都比num大,排除arr[i][j]所在列;

arr[i][j] < num,arr[i][j]所在行都比num小,排除arr[i][j]所在行;

我的代码实现,仅供参考:

 1         public bool IsExists(int[][] arr, int num)
 2         {
 3             if (arr == null || arr[0] == null)
 4                 return false;
 5
 6             int row = 0;
 7             int rows = arr[0].Length;
 8             int col = arr.GetLength(0) - 1;
 9
10             while (row < rows && col >= 0)
11             {
12                 if (arr[row][col] > num)
13                 {
14                     col--;
15                 }
16                 else if (arr[row][col] < num)
17                 {
18                     row++;
19                 }
20                 else if (arr[row][col] == num)
21                 {
22                     return true;
23                 }
24             }
25
26             return false;
27         }

转载于:https://www.cnblogs.com/HuoAA/p/4796850.html

【面试题3】二维数组中的查找相关推荐

  1. 剑指offer:面试题04. 二维数组中的查找

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

  2. 数组中其余的排除_[leetcode 剑指offer系列] 面试题04. 二维数组中的查找

    题目难度: 简单 原题链接 今天继续更新剑指 offer 系列, 这道题的优化空间非常大, 个人感觉很适合作为面试题, 值得一做. 大家在我的公众号"每日精选算法题"中的聊天框中回 ...

  3. 剑指offer编程题Java实现——面试题3二维数组中的查找

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 下面是我实现的代码,修 ...

  4. 剑指Offer - 面试题4. 二维数组中的查找(双指针)

    1. 题目 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 示例 ...

  5. 剑指offer面试题04. 二维数组中的查找(Array)

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

  6. Java利用二维数组判断节假日_《剑指offer》面试题3 二维数组中的查找 Java版

    (二维数组,每行递增,每列递增.输入二维数组和一个整数,判断数组中是否含有此数.) 我的方法:拿到题目,根据题目条件我提取出这样一个特性:一个数的右边和下面的数都比它大.于是就可以写出一种递归的方法: ...

  7. 二维数组的空间复杂度_剑指 offer 面试题精选图解 04 . 二维数组中的查找

    点击关注上方"图解面试算法", 设为"置顶或星标",一起刷 LeetCode. 作者:程序员吴师兄 今天分享的题目来源于 LeetCode 上的剑指 Offer ...

  8. leetcode|剑指offter|面试题4:二维数组中的查找

    面试题04. 二维数组中的查找 问题描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判 ...

  9. 面试题4:二维数组中的查找

    /******************************************************************* Copyright(c) 2018, htfeng All r ...

  10. [剑指offer]面试题3:二维数组中的查找

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

最新文章

  1. Apache、Nginx、Tomcat、PHP的区别
  2. 自我总结(四) ---java web项目完结,j2ee的开始
  3. 爬虫Selenium报错“cannot find Chrome binary“解决方案
  4. 全能HOOK框架 JNI NATIVE JAVA ART DALVIK
  5. OpenGL定向光的投影阴影
  6. JavaWeb第一讲 Servlet的工作原理及生命周期
  7. 嵌入式C语言基础(二)
  8. git 查看某些文档的历史版本_Git 教程(二)log 命令的使用
  9. android日志打印机制,Android4_使用Log打印
  10. 网页获取服务器时间,通过AFNetworking获取服务器时间
  11. 从零基础入门Tensorflow2.0 ----八、39.3. gpu3
  12. 朗逸机器人_几张动图告诉你,工业机器人无所不能!
  13. linux命令行改变时区,Linux命令行操作修改系统时区
  14. win10隐藏任务栏_你真的了解任务栏吗?win10任务栏居然隐藏了这么多小窍门
  15. 【CVPR2022】论文列表与下载——PartFour
  16. AcrGIS 做成本距离分析时提示ERROR 999999:无法启动配置 RasterCommander.ImageServer
  17. 云服务器定时启动程序_VPS?云主机?自家服务器,启动
  18. Microsoft Web Farm Framework (WFF) 2.0正式发布
  19. auto头文件 qt_C++ auto 关键字的使用
  20. 201571030135/201571030137《小学四则运算练习软件》结对项目报告

热门文章

  1. 北上深 | 商汤招聘智能视频和数字人算法研究员(全职/实习)
  2. 穿墙透视真的来了!MIT华人团队超强动作检测模型,小黑屋照样夜视
  3. CV Code | 计算机视觉开源周报 20190603期
  4. 13篇京东CVPR 2019论文!你值得一读~
  5. 腾讯内容平台部-视频内容理解算法实习生
  6. 麻省理工、微软为AI量身打造了一套leetcode编程题
  7. Hinton发布最新论文!表达神经网络中部分-整体层次结构
  8. GAN模型计算量减少至1/9!MIT韩松团队提出GAN压缩法,已开源
  9. 【OpenCV】OpenCV函数精讲之 -- createTrackbar()函数、getTrackbarPos()函数
  10. 深度学习与TensorFlow:FCN论文学习笔记