有序二维数组查找问题
问题描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完 成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解题思路
从第一行最右边的数开始比,如果比目标数小,则删除行;若等于,则返回true;若大,则删除列;
java实现
private static boolean containTarget(int[][] arr, int target) {
// TODO Auto-generated method stub
int col=arr[0].length-1;
int row=0;
while(col>=0&&row<=arr.length-1) {//arr.length为二维数组的行数
if (arr[row][col]==target) {
return true;
}else if (arr[row][col]>target) {
col--;
}else if (arr[row][col]<target) {
row++;
}
}
return false;
}