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 in ascending from left to right.
- Integers in each column are sorted in ascending from top to bottom.
Example:
Consider the following matrix:
[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30] ]
Given target = 5
, return true
.
Given target = 20
, return false
.
思路分析:
方法①:若忽视有序这个条件,我们可以直接进行暴力搜索,去检索每一个数组元素。时间复杂度为O(n^m)
public boolean searchMatrix(int[][] matrix, int target) {
//validate
if (null == matrix || matrix.length == 0){
return false;
}