Write an efficient algorithm, searches for a value in a m x n Matrix. This matrix has the following properties:
- Integers in each row is sorted from the left to the right.
- The first integer of each row was greater than the last integer of the previous row.
For example,
Consider the following matrix:
[ [1, 3, 5, 7], [Ten, One,], [23, 30, 34, 50]]
Given target = 3
, return true
.
1 Public classSolution {2 Public BooleanSearchmatrix (int[] Matrix,inttarget) {3 intm = matrix.length, n = matrix[0].length;4 if(m = = 0 | | n = = 0)return false;5 inti = m-1,j = 0;6 while(I >= 0 && J <N) {7 if(Matrix[i][j] = = target)return true;8 if(Matrix[i][j] > target) i--;9 ElseJ + +;Ten } One return false; A } -}
The matrix of the problem is also characteristic. Comparison topics:
Http://www.cnblogs.com/guoguolan/p/5620209.html
Solution Two: You can use binary search to do, but should not use the characteristics of the matrix to do fast.
The Search a 2D Matrix Java solutions