编写一个高效的算法来搜索m x n
矩阵matrix
中的一个目标值target
。该矩阵具有以下特性:
- 每行的元素从左到右升序排列。
- 每列的元素从上到下升序排列。
提示:
m == matrix.length
n == matrix[i].length
1 <= n, m <= 300
-10^9 <= matrix[i][j] <= 10^9
- 每行的所有元素从左到右升序排列
- 每列的所有元素从上到下升序排列
-10^9 <= target <= 10^9
剑指offer上有一样的题目。
这里从右上角开始搜索,如果目标小于当前的数,则下面这一列都不会有等于目标的数,往左一列;如果目标大于当前的数,则左边这一行都不会有等于目标的数,往下一行。
仔细想想,有没有挺像个二叉搜索树 我随便说的,我也不知道
反正能想到从右上角开始搜索就很简单啦,代码也不难的~
1 | class Solution { |