算法1
考点:二分+矩阵转换
思路:将二维矩阵转化一维矩阵用[mid/m][mid%m],然后对于一维矩阵二分,判断target是否等于mid
C++ 代码
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
//如果矩阵为空,或者矩阵的列为空
if(matrix.empty()||matrix[0].empty())return false;
int n=matrix.size(),m=matrix[0].size();//行数列数
int l=0,r=n*m-1;
while(l<r)
{
int mid=l+r>>1;
if(matrix[mid/m][mid%m]>=target)r=mid;
else l=mid+1;
}
return matrix[r/m][r%m]==target;
}
};