题目:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:
选取左上角或者右下角,每次剔除一行或者一列。
如选取右上角:
注意:
考虑边界条件和特殊输入(NULL指针,空字符串)及错误处理。
- 二维数组输入是空指针
- 二维数组中没有要查找的数字
public boolean findInArray(int[][] array, int target){
if (array == null)
return false;
int row = array.length-1;
int column=0;
while (row>=0 && column <array[0].length){
if (array[row][column]==target)
return true;
if (tgrget > array[row][column])
column++;
else
row--;
}
}