题目描述:
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
题目分析:
根据矩阵的特性从矩阵左下角或右上角可是查找,如果从矩阵左下角开始查找,则要查找的数始终是在当前数,如果当前的数小于目标数,则向右边移动,往递增的方向移动;如果当前的数大于目标,则向上移动,往递减的方向移动
实现代码:
public class Solution {
public boolean Find(int target, int [][] array) {
if(array == null || array.length == 0){
return false;
}
int raw = array.length;
int line = array[0].length;
for(int i = raw-1; i >= 0; i--){
for(int j = 0; j < line; j++){
int temp = array[i][j];
if(temp > target){//当当前的数大于目标数,向上移动
break;
}else if(temp < target){//当当前的数小于目标数,向左移动
continue;
}else {
return true;
}
}
}
return false;
}
}