class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型vector<vector<>> * @param target int整型 * @return bool布尔型 */ bool searchMatrix(vector<vector<int> >& matrix, int target) { // write code here // 二分查找 int low_row = 0; int high_row = matrix.size()-1; while(low_row < high_row) { // 不能简单写成int mid = (low_row + high_row)>>1 ;否则会陷入死循环 int mid = low_row + (low_row+high_row) >> 1; if(matrix[mid][0] < target) high_row = mid-1; else low_row = mid; } int left = 0; int right = matrix[0].size()-1; while(left < right) { int mid = (left+right) >> 1; if(matrix[low_row][mid]==target) return true; else if(matrix[low_row][mid] > target) left = mid+1; else right = mid-1; } return matrix[low_row][left] == target ? true : false; } };