题意:
在一个 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。

思路:
1.首先以二维数组左下角元素 为 标志数。从标志数开始遍历
2.通过循环,
如果 标志数 大于 target ,那么 i–;
如果标示数小于 target ,那么j++;
否则,查找成功,返回true。
3.查找不成功,返回false

这里为啥 i 要-- , j 要 ++ 呢?

因为这里是从上往下,是逐渐增大,从左往右,是逐渐增大
所以,如果标示数比target更大就要 往上走一行。
如果标示数比 target更小 ,那么就要往右走一列。
有示意图更好理解。

注意:
标示数的下标,从0开始 故 i = matrix.length -1;

循环条件: i 要大于等于0 ,j 要小于 列数

Java代码实现:

在这里插入代码片class Solution {public boolean findNumberIn2DArray(int[][] matrix, int target) {int i = matrix.length - 1, j = 0; //以左下角元素开始遍历,索引从0开始while(i >= 0 && j < matrix[0].length){if(matrix[i][j] > target) i--;else if(matrix[i][j] < target ) j++;else  return true;} return false;}
}

数组-二维数组中的查找相关推荐

  1. 【C 语言】二级指针内存模型 ( 指针数组 | 二维数组 | 自定义二级指针 | 将 一、二 模型数据拷贝到 三 模型中 并 排序 )

    文章目录 一.指针数组 和 二维数组 数据 拷贝到 自定义二级指针 中 1.函数形参 设计规则 2.三种内存模型 对应 函数形参 指针退化规则 二.完整代码示例 一.指针数组 和 二维数组 数据 拷贝 ...

  2. python二维数组去重复_python 去除二维数组/二维列表中的重复行方法

    python 去除二维数组/二维列表中的重复行方法 之前提到去除一维数组中的重复元素用unique()函数,如果要去除二维数组中的重复行该怎么操作呢? import numpy as np arr = ...

  3. C# 指定格式的字符串截成一维数组(二维数组)的操作类

    指定格式的字符串截成一维数组(二维数组)的操作类 做项目时经常会遇到将"1,3,a,b,d"截成一维数组或将"1,a;2,b;3,c;4,d"截成二维数组.虽然 ...

  4. day06数组-一维数组二维数组

    数组:          数组到底是什么呢?有什么特点呢?通过上面的分析:我们可以得到如下两句话:                 1.数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. ...

  5. php 二位数组随机,PHP多维数组 php打乱数组二维数组多维数组的简单实例

    php中的shuffle函数只能打乱一维数组,有什么办法快速便捷的打乱多维数组?手册上提供了 上面这个是针对二维数组的! 下面针对多维数组的乱序方法?尽可能的方便快速: 以下函数也是出自php手册,可 ...

  6. c/c++教程 - 1.7 数组 一维数组 二维数组

    九.数组 数组:一个里面存放了相同类型数据元素的集合. 特点:每个数组中的元素都是相同的数据类型:数组是由连续的内存位置组成的. 注意:数组的下标是从0开始索引. 参考视频:https://www.b ...

  7. php 数组重新打乱_php打乱数组二维数组多维数组的简单实例

    php中的shuffle函数只能打乱一维数组,有什么办法快速便捷的打乱多维数组?手册上提供了 function shuffle_assoc($list) { if (!is_array($list)) ...

  8. C语言数组——二维数组

    C语言目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分析 VS ...

  9. 数组(一维数组、多维数组/二维数组)和简单排序算法

    提示:数组是线性数据结构中最为基础,最为典型的一种顺序型结构. 它用一组连续的内存空间 ,来存储一组具有相同类型的数据. 与变量相比,变量是一种单一的数据存储方式,而数组是用于存储一连串的一组数据. ...

最新文章

  1. python代码大全表解释-python操作列表的函数使用代码详解
  2. 边缘检测:Sobel、拉普拉斯算子
  3. 关于寻路算法的一些思考(4):A* 算法的变体
  4. python量化数据处理小细节2
  5. 让你的单细胞数据动起来!|iCellR(一)
  6. Spark之SparkSQL数据源
  7. 深度学习之optimizer 优化方法
  8. 新建计算机管理员用户,电脑我设置个新的用户 怎么切换不到默认的管理员用户登陆了...
  9. 音乐推荐系统协同过滤算法解释
  10. OD调试检测研究笔记(以E盾简化版作研究时写的笔记)
  11. 与计算机相关的潜在健康风险是什么,医疗安全与风险管理.新.ppt
  12. windows无法更改密码解决办法
  13. java实现福利彩票抽奖_【福利】快来参与抽奖获得《Java程序设计》
  14. 直角坐标系和极坐标系
  15. Linux操作系统——切换到root用户及其他用户
  16. windows:QueryPerformanceCounter函数/PerformanceCounter函数
  17. GitHub上最火的40个iOS开源项目
  18. IRremoteESP8266库 红外控制空调方法
  19. CSP 序列查询新解 202112-2
  20. STM32F207VET+DP83848PHY驱动移植的笔记

热门文章

  1. [译]从零开始成为数据科学家的9个步骤
  2. 如何通过 Vue+Webpack 来做通用的前端组件化架构设计
  3. Windows Server 2016-安装AD域服务注意事项
  4. Codeforces 847C - Sum of Nestings
  5. mysql5.7.安装记录
  6. Linear Regression(一)——
  7. Go 性能优化技巧 8/10
  8. Python基础(11)--面向对象1
  9. img to image_tag
  10. 关于DSP的GPIO的输入输出设置