方法一:暴力法
也就是一个一个元素的找,找到为止
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
for(int i=0;i<matrix.size();i++){
for(int j=0;j<matrix[0].size();j++){
if(matrix[i][j] == target){
return true;
}
}
}
return false;
}
};
方法二,利用第一行最后一个查询,遇到的数小的话向左移,大的话向下移
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
int i = matrix.size() - 1, j = 0;
while (i >= 0 && j < matrix[0].size()) {
if (matrix[i][j] > target) i--;
else if (matrix[i][j] < target) j++;
else return true;
}
return false;
}
};