在leetcode做过,之前的文章有写。
public class Solution {
public boolean Find(int target, int [][] array) {
//1.二分法:沿对角线遍历,分别对当前元素所在的行和列进行二分查找
//2.从右上角开始遍历,若当前元素小于目标,则下移,若大于则左移。直到走到左下或越界
int m = array.length,n = array[0].length;
int i=0,j=n-1;
while(i<m&&j>=0){
if(array[i][j]>target)
j--;
else if(array[i][j]<target)
i++;
else
return true;
}
return false;
}
}