题目
在一个二维数组中,每一行,每一列都是递增的,请完成一个函数,判断一个数字是否在给定二维数组中。
题解
- 我们可以将右上角置为起点
- 相等则返回
- 小于目标值则向下
- 大于目标值则向左
public boolean findNumberIn2DArray(int[][] matrix, int target) {
if(matrix==null||matrix.length==0) return false;
int row = 0;
int col = matrix[0].length-1;
while(row<matrix.length&&col>=0){
int val= matrix[row][col];
if(val==target) return true;
else if(val<target){
row++;
}else{
col--;
}
}
return false;
}
源码: 剑指offer4J
网友评论