题目描述

在这里插入图片描述

题解一:暴力for

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
int ln = matrix.size();
if(ln == 0 ) return false;
int lm = matrix.front().size();

for(int i = 0; i < ln; ++i)
{
for(int j = 0; j < lm; ++j)
{
if(matrix[i][j] == target)
{
return true;
}
}
}
return false;
}
};

在这里插入图片描述

题解二:缩小范围

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
int ln = matrix.size();
if(ln == 0) return false;
int lm = matrix.front().size();
bool res = false;

int row = 0;
int col = lm - 1;
while(row < ln && col >= 0)
{
if(matrix[row][col] == target)
{
res = true;
break;
}
else if(matrix[row][col] > target)
{
--col;
}
else
{
++row;
}
}
return res;
}
};

在这里插入图片描述