package leetcode;
public class offer_04 {
public boolean findNumberIn2DArray(int[][] matrix, int target) {
if(matrix.length == 0) {
return false;
}
int height=matrix.length-1;
int width=matrix[0].length-1;
if(target<matrix[0][0]||target>matrix[height][width]) {
return false;
}
int n=0;
int m=width;
//从矩阵右上角开始寻找
while(n<=height&&m>=0) {
//找到target
if(matrix[n][m]==target) {
return true;
}
//当前值小于target,那么一定是当前行的下一行
if(matrix[n][m]<target) {
n=n+1;
//当前值大于target,那么一定是当前列的前一列
}else {
m=m-1;
}
}
return false;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
offer_04 off=new offer_04();
int[][] matrix= {{1,4,7,11,15},{2,5,8,12,19},{3,6,9,16,22},{10,13,14,17,24},{18,21,23,26,30}};
System.out.println(off.findNumberIn2DArray(matrix, 5));
}
}