knakul853

Untitled

Jun 26th, 2020
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. /**
  2. knakul853
  3. **/
  4. class Solution {
  5. public:
  6.     bool searchMatrix(vector<vector<int>>& matrix, int target)
  7.     {
  8.         if(matrix.empty() || matrix[0].empty())return false;
  9.        
  10.         int n = (int)matrix.size();
  11.         int m = (int)matrix[0].size();
  12.        
  13.         int l = 0;
  14.         int h = n-1;
  15.        
  16.         while(l <= h )
  17.         {
  18.             int mid = (l + (h-l)/2);
  19.            
  20.             if(target >= matrix[mid][0] && target <= matrix[mid][m-1])
  21.                 return binarysearch(matrix[mid], m, target);
  22.            
  23.             else if(target > matrix[mid][0]) l = mid+1;
  24.             else h = mid-1;
  25.         }
  26.        
  27.        
  28.         return false;
  29.     }
  30.    
  31.     bool binarysearch( vector<int>a, int m, int target )
  32.     {
  33.         int l = 0;
  34.         int r = m-1;
  35.        
  36.         while( l <= r)
  37.         {
  38.             int mid = (l + r)/2;
  39.             if( a[mid] > target )r = mid-1;
  40.             if( a[mid] < target )l = mid+1;
  41.            if(a[mid] == target) return true;
  42.         }
  43.         return false;
  44.     }
  45. };
Add Comment
Please, Sign In to add comment