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 };
两个二分查找完事儿
浙公网安备 33010602011771号