class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
int m = matrix.size();
int n = matrix[0].size();
int len = m * n;
int l = 0;
int r = len - 1;
int mid;
while(l < r - 1){
mid = l + (r - l) / 2;
int row = mid / n;
int col = mid % n;
if(target < matrix[row][col]) r = mid - 1;
else if(target > matrix[row][col]) l = mid + 1;
else return true;
}
if(matrix[r / n][r % n] == target) return true;
if(matrix[l / n][l % n] == target) return true;
return false;
}
};
果不其然的一遍过,在循环的时候保持区间内必须有3个及以上的数,然后退出循环后再判断是个好方法~