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 in ascending from left to right.
- Integers in each column is sorted in ascending from top to bottom.
For example,
Consider the following matrix:
[ [1, 4, 7, one, a], [2, 5, 8,, + ], [3, 6, 9, +, +], [10, 13, 14, 17, [18, 21, 23, 26, 30]
Given target = 5
, return true
.
Given target = 20
, return false
.
1Solution 1. Binary Search2 //The matrix is divided into 3 parts:smaller, bigger and unknown.3 Public classSolution {4 Public BooleanSearchmatrix (int[] Matrix,inttarget) {5 intm =matrix.length;6 intn = matrix[0].length;7 inti = 0, j = n-1;8 while(I<m && j>=0) {9 if(target = = Matrix[i][j])return true;Ten if(Matrix[i][j] >target) { Onej--; A}Else if(Matrix[i][j] <target) { -i++; - } the } - - return false; - } +}
Search a 2D Matrix II