一、题目描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/bdf474d864b14471a78c8f47ec569ad4.png)
二、示例
![在这里插入图片描述](https://img-blog.csdnimg.cn/909d9e7c889346c7b3736d918bf69343.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y2W6I-c55qE5bCP55m9,size_12,color_FFFFFF,t_70,g_se,x_16)
输入: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大的数,则行数加一,比target小的数,则列数
加一,如果到最后行数大于maxtarx.length,或者列数大于maxtarx[0].length
则退出while循环。
四、代码
var searchMatrix = function(matrix, target) {
let row = matrix.length
let col = matrix[0].length
let x = 0
let y = col - 1
while(x <= row - 1 && y >=0) {
if(matrix[x][y] === target) {
return true
}else if(matrix[x][y] > target) {
y--
}else {
x++
}
}
return false
};
五、总结
可以使用暴力解法,时间复杂度太高,并且由于本题的题目要求是存在一定的规律
的,所以可以使用该方法。