https://leetcode.cn/problems/search-a-2d-matrix-ii/description/?envType=study-plan-v2&envId=top-100-liked
首先矩阵本身具有一定的规律性,我们想要快速搜索肯定要利用,快速搜索的本质其实还是减少可能的匹配方案也就是减少分支,我们如果从(0,0)点开始搜索我们无论是往右还是往下走都是变大的,这样显然是会增加分支的,比如eg1:(0,0) = 1, target = 5,我们往右往下都可以,所以我们就需要改变开始点,一条路增大一条路减小这就满足我们的约定,右上点或左下点都可以。
java
public class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int m = matrix.length, n = matrix[0].length;
int curX = 0, curY = n - 1;
while(curX < m && curY >= 0) {
if(matrix[curX][curY] == target) {
return true;
}
if(matrix[curX][curY] < target) curX++;
else curY--;
}
return false;
}
}