当前位置:网站首页>LeetCode:剑指 Offer 04. 二维数组中的查找
LeetCode:剑指 Offer 04. 二维数组中的查找
2022-07-06 08:44:00 【Bertil】
在一个 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
注意:本题与主站 240 题相同:https://leetcode-cn.com/problems/search-a-2d-matrix-ii/
解题思路
1.首先定义出左下角的坐标,
2.然后从左下角元素开始遍历矩阵:若当前元素 > target,则上移一行;若当前元素 < target,则右移一列;若当前元素 = target,则直接返回true即可
3.最后通过上述循环遍历查找后,若未找到等于target的元素则直接返回false即可
代码
/** * @param {number[][]} matrix * @param {number} target * @return {boolean} */
var findNumberIn2DArray = function(matrix, target) {
if(!matrix.length) return false;
// 定义左下角的坐标
let [row, col] = [matrix.length - 1, 0];
const len = matrix[0].length;
// 坐标在矩阵内,就一直查找
while (row >= 0 && col <= len - 1) {
// item 表示当前元素
const item = matrix[row][col];
if (item === target) {
// 找到,返回true
return true;
} else if (item > target) {
// 太大了,上移一行
row--;
} else {
// 太小了,右移一列
col++;
}
}
return false;
};
边栏推荐
- 【嵌入式】Cortex M4F DSP库
- FairGuard游戏加固:游戏出海热潮下,游戏安全面临新挑战
- Navicat premium create MySQL create stored procedure
- Tcp/ip protocol
- sublime text的编写程序时的Tab和空格缩进问题
- The harm of game unpacking and the importance of resource encryption
- Target detection - pytorch uses mobilenet series (V1, V2, V3) to build yolov4 target detection platform
- Unified ordering background interface product description Chinese garbled
- Deep analysis of C language pointer
- Research Report on Market Research and investment strategy of microcrystalline graphite materials in China (2022 Edition)
猜你喜欢
visdom可视化实现与检查介绍
Screenshot in win10 system, win+prtsc save location
Navicat Premium 创建MySql 创建存储过程
tree树的精准查询
[MySQL] database stored procedure and storage function clearance tutorial (full version)
广州推进儿童友好城市建设,将探索学校周边200米设安全区域
JVM performance tuning and practical basic theory - Part 1
TP-LINK enterprise router PPTP configuration
Swagger setting field required is mandatory
生成器参数传入参数
随机推荐
如何有效地进行自动化测试?
PLT in Matplotlib tight_ layout()
Chrome浏览器的crash问题
The mysqlbinlog command uses
Roguelike游戏成破解重灾区,如何破局?
C語言雙指針——經典題型
View computer devices in LAN
Navicat Premium 创建MySql 创建存储过程
egg. JS directory structure
【MySQL】鎖
MySQL learning records 12jdbc operation transactions
704 binary search
TP-LINK enterprise router PPTP configuration
查看局域网中电脑设备
自动化测试框架有什么作用?上海专业第三方软件测试公司安利
TDengine 社区问题双周精选 | 第三期
Shift Operators
After PCD is converted to ply, it cannot be opened in meshlab, prompting error details: ignored EOF
ROS编译 调用第三方动态库(xxx.so)
[MySQL] log