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

示例:

现有矩阵 matrix 如下:

[
  [1,   4,  7, 11, 15],
  [2,   5,  8, 12, 19],
  [3,   6,  9, 16, 22],
  [10, 13, 14, 17, 24],
  [18, 21, 23, 26, 30]
]
给定 target = 5,返回 true。

给定 target = 20,返回 false。

限制:

0 <= n <= 1000

0 <= m <= 1000

思路:

从右上角开始,可以看作是一棵二叉搜索树,比target大列减小,比target小行增大

代码:

class Solution {

public boolean findNumberIn2DArray(int[][] matrix, int target) {

if(matrix == null || matrix.length == 0||matrix[0].length<1) {

return false;

}

int j = matrix[0].length-1;

int i=0;

while(i<matrix.length&&j>=0)

{

if(matrix[i][j]==target)

{

return true;

}

else if(matrix[i][j]>target)

{

j--;

}

else

{

i++;

}

}

return false;

}

}

【剑指offer】面试题04:二维数组中的查找(java)相关推荐

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

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

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

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

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

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

  4. 剑指offer 面试题3—二维数组中找数

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

  5. 在数组中查找指定元素_剑指 offer 第一题: 二维数组中的查找

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

  6. 牛客网-剑指offer 第一题(二维数组中的查找)

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

  7. JAVA剑指offer编程练习:二维数组中的查找(数组)

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

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

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

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

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

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

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 注:对于一个容器存储的 ...

最新文章

  1. 微软MVP社区夏日巡讲诚邀您的参与: 北京,上海,西宁,成都,西安
  2. keil2c语言使用教程,Keil教程(2)
  3. 转:亿级Web系统的高容错性实践(好博文)
  4. python替换所有标点符号 正则_python 把标点符号替换为空
  5. SpringBoot解决ajax跨域问题
  6. ppp在linux下的编译和安装
  7. windows下安装mysql 开机启动
  8. Kali Linux 2019.4用U盘安装以及解决Kali Linux 2019.4中文乱码问题
  9. java中的io系统详解[转]
  10. ps编辑工具:渐隐/合并拷贝
  11. 将经纬度转换为以度为单位的xy坐标
  12. 快递收件寄件JAVA小程序技术描述_解析“微快递”小程序的交互流程
  13. 2020泰迪杯C题解题流程
  14. Unity技能系统框架(三)分析一个具体被动技能
  15. 信号处理系列之限幅器(Limiter_FC)
  16. solr4.4 索引mysql数据库数据_solr4.4 索引mysql数据库数据(DataImport DIH QuickStart)
  17. 深度之眼(十七)——Python标准库
  18. 敏捷 scrum_敏捷教练,Scrum大师,交付经理
  19. 预训练模型最新综述:过去、现在和未来
  20. 《你好,放大器》----学习记录(六)

热门文章

  1. LeetCode 1293. 网格中的最短路径(DP/BFS)
  2. LeetCode 1015. 可被 K 整除的最小整数(数学)
  3. 程序员面试金典 - 面试题 05.03. 翻转数位(位运算)
  4. 程序员面试金典 - 面试题 17.04. 消失的数字(数学/位运算)
  5. Java可靠性测试fit_Java ParagraphVectors.fit方法代码示例
  6. php辅助框架,【PHP开发框架】Laravel框架中辅助函数:optional ()函数的介绍
  7. php必须汉字,php怎么只保留汉字
  8. 免费个人博客:使用hexo+github搭建详细教程
  9. Java什么是重用_深度解析:java必须掌握的知识点——类的重用
  10. python教程输入_python怎么输入一个集合