74. 搜索二维矩阵

 1 class Solution 
 2 {
 3 public:
 4     bool searchMatrix(vector<vector<int>>& matrix, int target) 
 5     {
 6         if(matrix.empty() || matrix[0].empty()) return false;
 7 
 8         int m = matrix.size(),n = matrix[0].size();
 9         int l = 0,r = m * n - 1;
10         while(l < r)
11         {
12             int mid = l + r >> 1;
13             //技巧:将二维数组的值映射成一维数组 matrix[mid / n][mid % n]
14             if(matrix[mid / n][mid % n] >= target) r = mid;
15             else l = mid + 1;
16         } 
17 
18         if(target != matrix[l / n][l % n]) return false;
19         return true;
20     }
21 };

 

posted @ 2020-03-21 18:24  Jinxiaobo0509  阅读(149)  评论(0)    收藏  举报