Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool searchMatrix(vector<vector<int> >& matrix, int target){
- int n = matrix.size();
- if(n == 0)
- return false;
- int m = matrix[0].size();
- if(m == 0)
- return false;
- int l = 0;
- int r = n;
- int row = n/2;
- int next_row = row+1;
- while(next_row < n && !(matrix[row][0] <= target && matrix[next_row][0] >= target)){
- if(target > matrix[row][0]){
- l = row;
- row = (row + r)/2;
- }
- else{
- r = row;
- row = (l+row)/2;
- }
- next_row = row+1;
- }
- if(next_row >= n){
- return binary_search(matrix[row].begin(),matrix[row].end(),target);
- }
- if(matrix[next_row][0] == target)
- return true;
- else{
- return binary_search(matrix[row].begin(),matrix[row].end(),target);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement