Search a 2D Matrix

Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:

  • Integers in each row are sorted from left to right.
  • The first integer of each row is greater than the last integer of the previous row.

For example,

Consider the following matrix:

[   [1,   3,  5,  7],   [10, 11, 16, 20],   [23, 30, 34, 50] ] 

Given target = 3, return true.

class Solution {
public:
     bool searchMatrix(vector<vector< int> > &matrix,  int target) {
         int xlen=matrix.size();
         if(xlen== 0return  false;
         int ylen=matrix[ 0].size();
         if(ylen== 0return  false;
         int index=xlen- 1;
         while(index>= 0 && matrix[index][ 0]>target)
            index--;
         if(index==- 1return  false;
        vector< int>* v=&(matrix[index]);
        index=ylen- 1;
         while(index>= 0 && (*v)[index]!=target)
            index--;
         if(index==- 1return  false;
         return  true;
    }
};  

你可能感兴趣的:(search)