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


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

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试