题目:

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

思路:

因为从左到右递增,从上到下递增,所以很容易发现是二分查找的变体,需要找到一个点(p),左边的数比这个数小,右边的比他大,所以又可以知道右上角的数字都是满足这个条件的;然后通过比较右上角的数字和目标数字的大小(target):

  1.如果 比target大,那么证明这个数所在列不可能存在这个数字,可以将整列排除(col--);

  2.如果比target小,那么证明这个数字所在的行不可能存在这个数字,将整行排除( row++ );

直到循环结束,或者找到该数字;

代码:

//c++
bool Find(int target, vector<vector<int> > array) {int rows=array.size();int cols=array[0].size();int row=0;int col=cols-1;while(row<rows&&col>-1){if(array[row][col]==target)return true;else if(array[row][col]>target)--col;else ++row;}return false;}

  

转载于:https://www.cnblogs.com/llauser/p/7472572.html

1,二维数组中的查找《剑指offer》相关推荐

  1. 二维数组中的查找---剑指Offer

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

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

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

  3. [剑指Offer]5.二维数组中的查找

    题目 在一个二维数组中,每一行都依照从左到右递增的顺序排序,每一列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个二维数组和一个整数.推断数组中是否含有该整数. 思路 [算法系列之三十三]杨 ...

  4. 算法题001 剑指Offer 面试题三:二维数组中的查找

    剑指Offer题目1:二维数组中的查找 题目描述: http://ac.jobdu.com/problem.php?cid=1039&pid=0 在一个二维数组中,每一行都按照从左到右递增的顺 ...

  5. 剑指Offer #01 二维数组中的查找(Java描述)

    题目来源:牛客网-剑指Offer专题 题目地址:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一 ...

  6. 剑指offer:二维数组中的查找

    目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺 ...

  7. 【LeetCode】剑指 Offer 04. 二维数组中的查找

    [LeetCode]剑指 Offer 04. 二维数组中的查找 文章目录 [LeetCode]剑指 Offer 04. 二维数组中的查找 package offer;public class Solu ...

  8. 利用指针数组计算2个3行4列矩阵的和_[剑指 Offer] 04. 二维数组中的查找

    难度:简单 题目链接:剑指 Offer 04. 二维数组中的查找 题目描述: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数, ...

  9. 剑指offer刷题 04. 二维数组中的查找

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

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

    剑指offer--面试题3:二维数组中的查找 1.笨蛋方法 复杂度为O(n2)O(n^2)O(n2) class Solution { public:bool Find(int target, vec ...

最新文章

  1. 在Service中通过WindowManger添加View的方式来把UI界面显示出来
  2. SpringCloud学习笔记:服务注册与发现Eureka(2)
  3. php debug用什么意思,phpdebug_backtrace()函数是干什么的?
  4. P2048-[NOI2010]超级钢琴【RMQ,堆】
  5. java检查两个字符串是否包含,java判断一个字符串是否包含另外一个字符串,java另外一个,要检查一个字符串是否包含...
  6. libevent编程疑难解答
  7. 恒大汽车向技术人员等授出3.24亿股购股权:占公司股本的3.31%
  8. 使用samba软件实现局域网共享文件
  9. Apache Spark 完全替代传统数仓的技术挑战及实践
  10. 软件测试工程师需要掌握哪些技能呢?
  11. DUXCMS 2.x学习问题(一)
  12. 字节和兆字节的换算_什么是兆字节(MB)?
  13. 数学基础知识(公式)不用学太深,了解基本公式即可,遇到问题再查吧。
  14. C# CAD二次开发之基本图形
  15. CRC循环冗余校验码总结
  16. 计算机桌面音量键在哪,win7系统控制音量的快捷方式有哪些
  17. easyui SWFUpload
  18. android http zlib,利用zlib库对HTTP收到的gzip数据解压
  19. 基于SSM的进销存管理系统设计与实现
  20. 阿里云短信使用简介demo

热门文章

  1. 读书笔记-你不知道的JavaScript(上)
  2. 修改/etc/resolv.conf又恢复到原来的状态?[转]
  3. 20135219洪韶武——信息安全系统设计基础第四周学习总结
  4. js实现IE、谷歌浏览器打印网页内容
  5. LeetCode(821)——字符的最短距离(JavaScript)
  6. AI 是否会取代计算机程序员
  7. 股票市值管理什么意思?
  8. 2021年是“三蛇闹春,十鼠抢粮,十一牛耕田”,啥意思?
  9. 你们的苹果手机,关闭哪些功能比较省电?
  10. Even better, if you don’t want to answer and