题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解题
public boolean Find(int target, int [][] array) {
int x = array.length - 1;//行下标最大值
int y = array[0].length - 1;//列下标最大值
int count = 0;//列下标右移计数
while (x >= 0 && count <= y) {
if (array[x][count] < target) {
count++;//从左下角的数开始,向右移
} else if (array[x][count] > target) {
x--;//向上比较
} else {
return true;
}
}
return false;
}
我认为,时间复杂度应该是O(n)