class Solution {
public:
//binary search:时间O(len1 * len2), 空间O(1)
bool searchMatrix(vector<vector<int>>& matrix, int target) {
int len1 = matrix.size();
if(len1 == 0) return false;
int len2 = matrix[0].size();
if(len2 == 0) return false;
int left = 0;
int right = len1 * len2 - 1;
while(left <= right) { //带等号!!!,matrix == [[1]], target == 1时
int mid = left + (right - left) / 2;
int row = mid / len2;
int col = mid % len2;
if(matrix[row][col] == target) return true;
else if(matrix[row][col] < target) left++;
else right--;
}
return false;
}
};
LeetCode74. 搜索二维矩阵
最新推荐文章于 2024-06-26 16:18:24 发布