当前位置:网站首页>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;
};
边栏推荐
- C语言深度解剖——C语言关键字
- egg. JS getting started navigation: installation, use and learning
- Crash problem of Chrome browser
- 软件卸载时遇到trying to use is on a network resource that is unavailable
- TDengine 社区问题双周精选 | 第三期
- C language double pointer -- classic question type
- Guangzhou will promote the construction of a child friendly city, and will explore the establishment of a safe area 200 meters around the school
- Excellent software testers have these abilities
- Image, CV2 read the conversion and size resize change of numpy array of pictures
- On the inverse order problem of 01 knapsack problem in one-dimensional state
猜你喜欢
【嵌入式】使用JLINK RTT打印log
Double pointeur en langage C - - modèle classique
Bottom up - physical layer
visdom可视化实现与检查介绍
[MySQL] database stored procedure and storage function clearance tutorial (full version)
Delay initialization and sealing classes
Excellent software testers have these abilities
优秀的软件测试人员,都具备这些能力
Sublime text in CONDA environment plt Show cannot pop up the problem of displaying pictures
Unified ordering background interface product description Chinese garbled
随机推荐
egg. JS project deployment online server
如何进行接口测试测?有哪些注意事项?保姆级解读
Light of domestic games destroyed by cracking
Problems in loading and saving pytorch trained models
【嵌入式】Cortex M4F DSP库
JS pure function
Colorlog combined with logging to print colored logs
Guangzhou will promote the construction of a child friendly city, and will explore the establishment of a safe area 200 meters around the school
sublime text没关闭其他运行就使用CTRL+b运行另外的程序问题
R language ggplot2 visualization, custom ggplot2 visualization image legend background color of legend
MySQL learning records 12jdbc operation transactions
如何有效地进行自动化测试?
Bitwise logical operator
2022.02.13 - NC002. sort
How to conduct interface test? What are the precautions? Nanny level interpretation
【ROS】usb_cam相机标定
@Jsonbackreference and @jsonmanagedreference (solve infinite recursion caused by bidirectional references in objects)
Deep learning: derivation of shallow neural networks and deep neural networks
TP-LINK enterprise router PPTP configuration
Leetcode question brushing (5.31) string