编写一个有效的算法,在m × n矩阵中搜索一个值 。该矩阵具有以下属性:
每行中的整数从左到右排序。
每行的第一个整数大于前一行的最后一个整数。
例如,
考虑以下矩阵:
[
[1,3,5,7],
[10,11,16,20],
[23,30,34,50]
]
给定目标 = 3,返回true。
class Solution {
public:
bool searchMatrix(vector<vector<int> > &matrix, int target) {
int m=matrix.size();
int n=matrix[0].size();
for(int i=0;i<m;i++){
for(int j=n-1;j>=0;j--)
{
int res=matrix[i][j];
if(target<res){
res=matrix[i][j-1];
continue;
}
else if(target>res){
res=matrix[i+1][j];
continue;
}
return true;
}
}
return false;
}
};
这种题是模板题,从右上角或者左下角开始找。