当前位置:网站首页>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;
};
边栏推荐
- [embedded] print log using JLINK RTT
- egg. JS directory structure
- @JsonBackReference和@JsonManagedReference(解决对象中存在双向引用导致的无限递归)
- visdom可视化实现与检查介绍
- egg. JS getting started navigation: installation, use and learning
- Revit 二次开发 HOF 方式调用transaction
- Analysis of the source code of cocos2d-x for mobile game security (mobile game reverse and protection)
- Shift Operators
- sys. argv
- [MySQL] lock
猜你喜欢
swagger设置字段required必填
JS inheritance method
Guangzhou will promote the construction of a child friendly city, and will explore the establishment of a safe area 200 meters around the school
Crash problem of Chrome browser
TCP/IP协议
ESP8266-RTOS物联网开发
被破解毁掉的国产游戏之光
tree树的精准查询
sublime text的编写程序时的Tab和空格缩进问题
【嵌入式】Cortex M4F DSP库
随机推荐
堆排序详解
Research Report on supply and demand and development prospects of China's high purity aluminum market (2022 Edition)
深度剖析C语言数据在内存中的存储
[MySQL] lock
2022.02.13 - NC002. sort
TP-LINK enterprise router PPTP configuration
@JsonBackReference和@JsonManagedReference(解决对象中存在双向引用导致的无限递归)
移位运算符
软件压力测试常见流程有哪些?专业出具软件测试报告公司分享
Tcp/ip protocol
@Jsonbackreference and @jsonmanagedreference (solve infinite recursion caused by bidirectional references in objects)
Crash problem of Chrome browser
Variable length parameter
Visual implementation and inspection of visdom
China polyether amine Market Forecast and investment strategy report (2022 Edition)
Computer cleaning, deleted system files
TCP/IP协议
R language uses the principal function of psych package to perform principal component analysis on the specified data set. PCA performs data dimensionality reduction (input as correlation matrix), cus
Current situation and trend of character animation
Trying to use is on a network resource that is unavailable