Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.07 KB | None | 0 0
  1. bool searchMatrix(vector<vector<int> >& matrix, int target){
  2.             int n = matrix.size();
  3.             if(n == 0)
  4.                 return false;
  5.             int m = matrix[0].size();
  6.             if(m == 0)
  7.                 return false;
  8.             int l = 0;
  9.             int r = n;
  10.             int row = n/2;
  11.             int next_row = row+1;
  12.             while(next_row < n && !(matrix[row][0] <= target && matrix[next_row][0] >= target)){
  13.                 if(target > matrix[row][0]){
  14.                       l = row;
  15.                       row = (row + r)/2;
  16.                 }
  17.                 else{
  18.                     r = row;
  19.                     row = (l+row)/2;
  20.                 }
  21.                 next_row = row+1;
  22.             }
  23.             if(next_row >= n){
  24.                 return binary_search(matrix[row].begin(),matrix[row].end(),target);
  25.             }
  26.             if(matrix[next_row][0] == target)
  27.                 return true;
  28.             else{
  29.                 return binary_search(matrix[row].begin(),matrix[row].end(),target);
  30.             }
  31.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement