数组-二维数组中的查找
题意:
在一个 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;}
}
数组-二维数组中的查找相关推荐
- 【C 语言】二级指针内存模型 ( 指针数组 | 二维数组 | 自定义二级指针 | 将 一、二 模型数据拷贝到 三 模型中 并 排序 )
文章目录 一.指针数组 和 二维数组 数据 拷贝到 自定义二级指针 中 1.函数形参 设计规则 2.三种内存模型 对应 函数形参 指针退化规则 二.完整代码示例 一.指针数组 和 二维数组 数据 拷贝 ...
- python二维数组去重复_python 去除二维数组/二维列表中的重复行方法
python 去除二维数组/二维列表中的重复行方法 之前提到去除一维数组中的重复元素用unique()函数,如果要去除二维数组中的重复行该怎么操作呢? import numpy as np arr = ...
- C# 指定格式的字符串截成一维数组(二维数组)的操作类
指定格式的字符串截成一维数组(二维数组)的操作类 做项目时经常会遇到将"1,3,a,b,d"截成一维数组或将"1,a;2,b;3,c;4,d"截成二维数组.虽然 ...
- day06数组-一维数组二维数组
数组: 数组到底是什么呢?有什么特点呢?通过上面的分析:我们可以得到如下两句话: 1.数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. ...
- php 二位数组随机,PHP多维数组 php打乱数组二维数组多维数组的简单实例
php中的shuffle函数只能打乱一维数组,有什么办法快速便捷的打乱多维数组?手册上提供了 上面这个是针对二维数组的! 下面针对多维数组的乱序方法?尽可能的方便快速: 以下函数也是出自php手册,可 ...
- c/c++教程 - 1.7 数组 一维数组 二维数组
九.数组 数组:一个里面存放了相同类型数据元素的集合. 特点:每个数组中的元素都是相同的数据类型:数组是由连续的内存位置组成的. 注意:数组的下标是从0开始索引. 参考视频:https://www.b ...
- php 数组重新打乱_php打乱数组二维数组多维数组的简单实例
php中的shuffle函数只能打乱一维数组,有什么办法快速便捷的打乱多维数组?手册上提供了 function shuffle_assoc($list) { if (!is_array($list)) ...
- C语言数组——二维数组
C语言目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分析 VS ...
- 数组(一维数组、多维数组/二维数组)和简单排序算法
提示:数组是线性数据结构中最为基础,最为典型的一种顺序型结构. 它用一组连续的内存空间 ,来存储一组具有相同类型的数据. 与变量相比,变量是一种单一的数据存储方式,而数组是用于存储一连串的一组数据. ...
最新文章
- python代码大全表解释-python操作列表的函数使用代码详解
- 边缘检测:Sobel、拉普拉斯算子
- 关于寻路算法的一些思考(4):A* 算法的变体
- python量化数据处理小细节2
- 让你的单细胞数据动起来!|iCellR(一)
- Spark之SparkSQL数据源
- 深度学习之optimizer 优化方法
- 新建计算机管理员用户,电脑我设置个新的用户 怎么切换不到默认的管理员用户登陆了...
- 音乐推荐系统协同过滤算法解释
- OD调试检测研究笔记(以E盾简化版作研究时写的笔记)
- 与计算机相关的潜在健康风险是什么,医疗安全与风险管理.新.ppt
- windows无法更改密码解决办法
- java实现福利彩票抽奖_【福利】快来参与抽奖获得《Java程序设计》
- 直角坐标系和极坐标系
- Linux操作系统——切换到root用户及其他用户
- windows:QueryPerformanceCounter函数/PerformanceCounter函数
- GitHub上最火的40个iOS开源项目
- IRremoteESP8266库 红外控制空调方法
- CSP 序列查询新解 202112-2
- STM32F207VET+DP83848PHY驱动移植的笔记