要求:往下,往右递增的矩阵
思路:往右往下同时dfs过不了,要走z字。先往右,若找到一个大的则此列及右边所有列排除。
然后往下找,找到一个大的则左再往下,小的话直接往下。即下左下z字
另一种方法是对每一行暴力二分
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
int i=0,j=0;
int r=matrix.size(),v=matrix[0].size();
while(j+1<v&&matrix[i][j+1]<=target)++j;
while(i<r&&i>=0&&j<v&&j>=0){
if(matrix[i][j]==target)return true;
else if(matrix[i][j]<target)++i;
else --j;
}
return false;
}
};