核心思想
利用题目提供的“每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序”
条件,从左下角或右上角经行搜索判断
class Solution {
public:
int row=0;
int col=0;
bool out;
void dfs(vector<vector<int>>& matrix,int& target,int i,int j){
// cout<<matrix[i][j]<<endl;
if(matrix[i][j]==target){
out=1;
return;
}
if(matrix[i][j]>target){
if(j-1>=0)dfs(matrix,target,i,j-1);
else {
out=0;
return;
}
}else{
if(i+1<row)dfs(matrix,target,i+1,j);
else {
out=0;
return;
}
}
}
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
if(matrix.empty())return 0;
if(matrix[0].empty())return 0;
row=matrix.size();
col=matrix[0].size();
dfs(matrix,target,0,col-1);
return out;
}
};