当前位置:网站首页>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;
};
边栏推荐
- Problems in loading and saving pytorch trained models
- Research Report on Market Research and investment strategy of microcrystalline graphite materials in China (2022 Edition)
- Golang force buckle leetcode 1020 Number of enclaves
- Navicat premium create MySQL create stored procedure
- The mysqlbinlog command uses
- Trying to use is on a network resource that is unavailable
- China Light conveyor belt in-depth research and investment strategy report (2022 Edition)
- How to conduct interface test? What are the precautions? Nanny level interpretation
- marathon-envs项目环境配置(强化学习模仿参考动作)
- 深度剖析C语言指针
猜你喜欢

ROS编译 调用第三方动态库(xxx.so)

Using pkgbuild:: find in R language_ Rtools check whether rtools is available and use sys The which function checks whether make exists, installs it if not, and binds R and rtools with the writelines

sublime text的编写程序时的Tab和空格缩进问题

TP-LINK 企业路由器 PPTP 配置

JVM performance tuning and practical basic theory - Part 1

ROS compilation calls the third-party dynamic library (xxx.so)

C語言雙指針——經典題型

PLT in Matplotlib tight_ layout()
![[cloud native topic -45]:kubesphere cloud Governance - Introduction and overall architecture of enterprise container platform based on kubernetes](/img/ac/773ce8ee7f380df19edf8373250608.jpg)
[cloud native topic -45]:kubesphere cloud Governance - Introduction and overall architecture of enterprise container platform based on kubernetes

同一局域网的手机和电脑相互访问,IIS设置
随机推荐
Problems in loading and saving pytorch trained models
2022.02.13 - NC001. Reverse linked list
vb.net 随窗口改变,缩放控件大小以及保持相对位置
堆排序详解
Purpose of computer F1-F12
2022.02.13 - 238. Maximum number of "balloons"
Sort according to a number in a string in a column of CSV file
JVM quick start
[MySQL] log
Restful API design specification
Image, CV2 read the conversion and size resize change of numpy array of pictures
[brush questions] top101 must be brushed in the interview of niuke.com
【刷题】牛客网面试必刷TOP101
Revit 二次开发 HOF 方式调用transaction
Roguelike game into crack the hardest hit areas, how to break the bureau?
pcd转ply后在meshlab无法打开,提示 Error details: Unespected eof
Colorlog combined with logging to print colored logs
704 binary search
JS inheritance method
FairGuard游戏加固:游戏出海热潮下,游戏安全面临新挑战