本题是一个找规律的题,从矩阵的右上角网左下角遍历,用i表示当前所在的行,j表示当前所在的列。如果目标值等于当前遍历到的值,那么返回true。如果目标值小于当前的值,那么目标值肯定就小于目前一列的所有值,那么就将j--。如果目标值大于当前的值,那么目标值必定大于当前行的所有值,将i++。如果遍历到了最后没有找到目标值,那么返回false即可。
public class Solution {
public boolean Find(int target, int [][] array) {
int m=array.length;
int n=array[0].length;
int i=0;
int j=n-1;
while(i<m&&j>=0){
if(target==array[i][j]){
return true;
}
else if(target>array[i][j]){
i++;
}
else{
j--;
}
}
return false;
}
}