search a 2d box
1 class Solution { 2 public: 3 bool searchMatrix(vector<vector<int> > &matrix, int target) { 4 // Start typing your C/C++ solution below 5 // DO NOT write int main() function 6 if(matrix.empty() || matrix[0].empty() ) return false; 7 int left = 0; 8 int right = matrix.size()-1; 9 while( left <= right) 10 { 11 int mid = (left + right)/2; 12 if( matrix[mid][0] == target ) 13 return true; 14 else if(matrix[mid][0] > target) 15 right = mid - 1; 16 else 17 left = mid + 1; 18 } 19 if( right == -1 ) return false; 20 int row = right; 21 left = 0; right = matrix[row].size() - 1; 22 while( left <= right ) 23 { 24 int mid = (left + right)/2; 25 if( matrix[row][mid] == target ) 26 return true; 27 else if(matrix[row][mid] > target) 28 right = mid - 1; 29 else 30 left = mid + 1; 31 } 32 return false; 33 34 } 35 };
posted on 2013-09-03 19:43 jumping_grass 阅读(129) 评论(0) 收藏 举报
浙公网安备 33010602011771号