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;
}
};


阅读更多
个人分类: 搜索
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

leetcode74——Search a 2D Matrix

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭