note:从最右上角开始。大于:row=row+1,小于:col = col-1
public class Solution {
public boolean Find(int target, int [][] array) {
// 获取数组的shape
int row = array.length-1;
int col = array[0].length-1;
int i = 0;
int j = col;
// 边界条件
while (i <= row & j >= 0){
if (target < array[i][j]){
j--;
}
else if (target > array[i][j]){
i++;
}
else{
return true;
}
}
return false;
}
}
本文介绍了一种在二维有序矩阵中查找目标值的高效算法。通过从矩阵的右上角开始,根据目标值与当前元素的比较结果调整搜索方向,实现了O(m+n)的时间复杂度。该算法适用于行和列都已排序的矩阵。

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



