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 from left to right.
The first integer of each row is greater than the last integer of the previous row.
For example,
Consider the following matrix:
[
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
Given target = 3, return true.
这个Java的解决方法是非常好的。
public boolean searchMatrix(int[][] matrix, int target) {
if (matrix == null || matrix.length == 0)
return false;
int i = 0, j = matrix[0].length - 1;
while (i < matrix.length && j >= 0) {
if (matrix[i][j] == target) {
return true;
} else if (matrix[i][j] > target) {
j--;
} else {
i++;
}
}
return false;
}
本文介绍了一种高效的矩阵搜索算法,该算法能在排序矩阵中快速查找指定数值。矩阵特性为每行从左到右递增排序,且每行首元素大于前一行末尾元素。通过示例演示了算法的工作原理及实现过程。

被折叠的 条评论
为什么被折叠?



