leetcode74——Search a 2D Matrix

题目大意:在一个升序的二维数组中是否存在目标值

分析:二分搜索。将二维数组展开就是简单的一维数组二分法查值。

代码:

class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
int m = matrix.size();
int n = matrix[0].size();
if (m == 0 || n == 0) return false;
int left = 0, right = m * n - 1;
while (left <= right) {
int mid = (left + right) / 2;
int x = mid / n;
int y = mid % n;
if (matrix[x][y] > target) {
right = mid - 1;
}
else if (matrix[x][y] < target) {
left = mid + 1;
}
else return true;
}
return false;
}
};


猜你喜欢

转载自blog.csdn.net/tzyshiwolaogongya/article/details/80349535