Topic:
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
.
Links: http://leetcode.com/problems/search-a-2d-matrix-ii/
Exercises
Finds the target number in a two-dimensional array sorted in rows and columns. Here we use a very ingenious method, from the top right corner of the matrix to find, equivalent to this element as mid, the target is larger than mid, then row + 1, small col + 1, equal to return to mid. is also similar to the idea of two-point search.
Time Complexity-o (M + N), Space complexity-o (1)
Public classSolution { Public BooleanSearchmatrix (int[] Matrix,inttarget) { if(Matrix = =NULL|| Matrix.length = = 0) return false; introw = 0, col = matrix[0].length-1; while(Row < matrix.length && Col >= 0) { intCurelem =Matrix[row][col]; if(Curelem = =target)return true; Else if(Curelem <target) Row++; ElseCol--; } return false; }}
Test:
Https://leetcode.com/discuss/47506/ac-clean-java-solution
Https://leetcode.com/discuss/48852/my-concise-o-m-n-java-solution
Https://leetcode.com/discuss/66657/java-short-code-o-m-n
Search a 2D Matrix II