题目: 给定如下的n*n的数字矩阵,每行从左到右是严格递增, 每列的数据也是严格递增
1 2 3
3 5 6
4 8 9
现在要求设计一个算法, 给定一个数k 判断出k是否在这个矩阵中。描述算法并且给出时间复杂度(不考虑载入矩阵的消耗)
思路: 从左下角开始查找,如果k大于此值,则往右继续查找。k
小于此值,则往上查找。
public static boolean dz(int k,int [][]array) {
int row=array.lenght;
int col=array[0].lenght;
int i=row-1,j=0;
while(row>=0&&&j<col){
if(k>array[i][j]){
col++;
}else if(k<array[i][j]){
row--;
}else{
return false;
}
}
return true;
}