1.1我的想法:
用二分查找来确定所在的列,找到列之后再用二分查找搜索,

1.2大神的想法
将矩阵逆时针旋转45°,得到数组具有类二叉搜索树的特征,对于顶点的数字,向左边的数字比它小,向右边的数字比它大。
因此如果当前的数字 > target,应该向左下角搜索,为i–
当前顶点数字 < target,应该向右下角搜索,为j++;
(通过调试才明白,这个是从左下角向右上角扫描的程序)

class Solution {public:bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {//注意开头要加上一个对于数组是否为空的判断//否则取matrix[0].size()为非法的int i = matrix.size() - 1, j = 0;while(i >= 0 && j < matrix[0].size()){if(matrix[i][j] > target) i--;else if(matrix[i][j] < target) j++;else return true;}return false;}
};作者:jyd
链接:https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/solution/mian-shi-ti-04-er-wei-shu-zu-zhong-de-cha-zhao-zuo/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2021-06-24Leetcode240.二维数组中的查找相关推荐

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

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

  2. php查找二维数组下标,PHP实现二维数组中的查找算法小结

    本文实例讲述了PHP实现二维数组中的查找算法.分享给大家供大家参考,具体如下: 方法1:silu从左下角最后一行的第一个元素开始,遍历.如果小于target 则遍历该行的所有元素,找到结束.如果大于继 ...

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

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

  4. 剑指Offer面试题:2.二维数组中的查找

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

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

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

  6. LeetCode-剑指 Offer 04. 二维数组中的查找

    剑指 Offer 04. 二维数组中的查找 思路一:暴力解法,两层for循环查找 时间复杂度为:O(nm) 空间复杂度为:O(1) class Solution {public:bool findNu ...

  7. 《剑指Offer》——二维数组中的查找(JZ1)C++

    文章目录 前言 题目:JZ1 二维数组中的查找 一.暴力解法 二.优化解法 总结 前言 题目:JZ1 二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序, ...

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

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

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

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

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

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

最新文章

  1. UVa11402 Ahoy, Pirates!
  2. TechEd China 2009 课程幻灯片和代码下载 - MBL311 SQL Server Compact 终极性能调校
  3. Ubuntu 9.10下Nvidia官方最新190.42显卡驱动安装
  4. 持续交付一:从开发到上线的环境
  5. 【Java】关键词assert的使用
  6. redis事务乐观锁,watch
  7. 理解Unix/Linux系统中的文件描述符
  8. terminal中常用的rvm指令
  9. VS C++ def
  10. 接口测试面试题及参考答案,轻松拿捏面试官
  11. win10 ie浏览器安装Flash Player Debugger解决方案
  12. WSL2 Docker Distro迁移
  13. RealSense D435深度相机开发(一)---- 基础介绍
  14. 河南省赛 导弹发射 lis
  15. IE8的调试工具使用详解(下)
  16. 最全!互联网大厂的薪资和职级一览
  17. AWS KVS(Kinesis Video Streams)之WebRTC集成过程(六)
  18. django的通过set_password注册密码加密
  19. 小苹果歌词――筷子兄弟
  20. unescape 不能再用!

热门文章

  1. 闲鱼技术人的辞旧迎新
  2. Redis缓存击穿解决办法之bloom filter布隆过滤器
  3. Android 日期选择器 DatePickerDialog 修改主题颜色
  4. 浅谈百度的FIS3框架
  5. basename从argv[0]中截取文件名
  6. Unity 打开关闭外部的exe软件
  7. 什么是Ajax以及ajax请求的步骤
  8. 计算机维修看图,看图学会洗衣机故障分析与维修
  9. 想知道怎么提取伴奏?1分钟教你完成伴奏的提取
  10. 0~n-1缺失的数字(注意尾巴也有可能)