题目
编写一个高效的算法来搜索 m x n
矩阵 matrix
中的一个目标值 target
。该矩阵具有以下特性:
- 每行的元素从左到右升序排列。
- 每列的元素从上到下升序排列。
- 就是从二维矩阵中找有没有这个值
思路
从矩阵左下角开始搜索 索引为(i,j)
matrix(i,j)>target 执行i--,则消去 i 行
matrix(i,j)<target 执行j++,则消去 j 列
当matrix(i,j) = target 则找到 返回true
如果查找完仍没有则返回false
class Solution { public boolean searchMatrix(int[][] matrix, int target) { int i = matrix.length-1,j=0; while(i>=0&&j<matrix[0].length){ if(matrix[i][j]>target)i--; else if(matrix[i][j]<target)j++; else return true; } return false; } }