1 static int wing=[]()
 2 {
 3     std::ios::sync_with_stdio(false);
 4     cin.tie(NULL);
 5     return 0;
 6 }();
 7 
 8 class Solution 
 9 {
10 public:
11     bool searchMatrix(vector<vector<int>>& matrix, int target) 
12     {
13         int szrow=matrix.size();
14         if(szrow==0)
15             return false;
16         int szcol=matrix[0].size(); 
17         if(szcol==0)
18             return false;
19         int lirow=szrow-1,licol=szcol-1;
20         int left=0,right=lirow;
21         while(left<right)
22         {
23             int mid=left+((right-left)>>1);
24             if(matrix[mid][licol]==target)
25                 return true;
26             else if(matrix[mid][licol]<target)
27                 left=mid+1;
28             else
29                 right=mid;        
30         }
31         int row=left;
32         if(matrix[row][0]>target)
33             return false;
34         left=0,right=licol;
35         while(left<right)
36         {
37             int mid=left+((right-left)>>1);
38             if(matrix[row][mid]==target)
39                 return true;
40             else if(matrix[row][mid]<target)
41                 left=mid+1;
42             else
43                 right=mid;
44         }
45         return matrix[row][left]==target;
46     }
47 };

两个二分查找完事儿

posted on 2018-07-21 12:52  高数考了59  阅读(143)  评论(0)    收藏  举报