【leetcode】 Search a 2D Matrix (easy)

时间:2022-11-30 10:24:26

Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:

  • Integers in each row are sorted from left to right.
  • The first integer of each row is greater than the last integer of the previous row.

实际上就是二分搜索, 不难, 一次AC。

注意一下退出条件是 l <= r 就行。有等于。

class Solution {
public:
bool searchMatrix(vector<vector<int> > &matrix, int target) {
if(matrix.empty())
return false; int length = matrix.size() * matrix[].size();
int l = , r = length - ; while(l <= r) //注意 这里包含等于
{
int mid = (l + r) / ;
int col = mid % matrix[].size();
int row = mid / matrix[].size();
if(matrix[row][col] < target)
{
l = mid + ;
}
else if(matrix[row][col] > target)
{
r = mid - ;
}
else
{
return true;
} }
return false;
}
};