题目意思:
从左往右,从上往下都递增的一个二维数组,验证一个输入的数target是否在这个矩阵里。
思路:
从上往下递增,则每个数上面的那个数都比它小
从左往右递增,则每个数左边的那个数都比它小
因此,每个数都比它左边和上面的数大
试想从左下角开始比较
若target比数组当前位置的数大,则它可能出现在这个数的右边,那么让位置右移一位
若target比数组当前位置的数小,则它可能数显在这个数的上面,那么让位置上移一位
若相等,则return true
比较结束 return false
java代码:
public class Solution {
public boolean Find(int target, int [][] array) {
int row = array.length;
int col = array[0].length;
int i=row-1,j=0;
while(i>=0&&j<col){
if(target<array[i][j])
i--;
else if(target>array[i][j])
j++;
else
return true;
}
return false;
}
}