当前位置:网站首页>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;
};
边栏推荐
- Rviz仿真时遇到机器人瞬间回到世界坐标原点的问题及可能原因
- Introduction to the differences between compiler options of GCC dynamic library FPIC and FPIC
- Beijing invitation media
- What is CSRF (Cross Site Request Forgery)?
- 软件卸载时遇到trying to use is on a network resource that is unavailable
- 游戏解包的危害及资源加密的重要性
- 如何有效地进行自动化测试?
- China dihydrolaurenol market forecast and investment strategy report (2022 Edition)
- R language ggplot2 visualization: place the title of the visualization image in the upper left corner of the image (customize Title position in top left of ggplot2 graph)
- Mobile phones and computers on the same LAN access each other, IIS settings
猜你喜欢

Guangzhou will promote the construction of a child friendly city, and will explore the establishment of a safe area 200 meters around the school

win10系统中的截图,win+prtSc保存位置

Charging interface docking tutorial of enterprise and micro service provider platform

Delay initialization and sealing classes

查看局域网中电脑设备

深度剖析C语言指针
![[MySQL] lock](/img/ce/9f8089da60d9b3a3f92a5e4eebfc13.png)
[MySQL] lock

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

Image,cv2读取图片的numpy数组的转换和尺寸resize变化

UnsupportedOperationException异常
随机推荐
gcc动态库fPIC和fpic编译选项差异介绍
Research Report on Market Research and investment strategy of microcrystalline graphite materials in China (2022 Edition)
704 二分查找
Tcp/ip protocol
TP-LINK 企业路由器 PPTP 配置
[NVIDIA development board] FAQ (updated from time to time)
win10系统中的截图,win+prtSc保存位置
ROS编译 调用第三方动态库(xxx.so)
Detailed explanation of heap sorting
JVM quick start
Visual implementation and inspection of visdom
Navicat Premium 创建MySql 创建存储过程
The harm of game unpacking and the importance of resource encryption
C language double pointer -- classic question type
The network model established by torch is displayed by torch viz
Introduction to the differences between compiler options of GCC dynamic library FPIC and FPIC
MySQL learning record 07 index (simple understanding)
2022.02.13 - NC003. Design LRU cache structure
Trying to use is on a network resource that is unavailable
按位逻辑运算符