题目:
在一个二维数组中(每个一维数组的维数都相同),每一行按照从左到右递增的顺序排列,每一列都按照从上到下递增的顺序排列。完成一个函数,输入一个二维数组和整数,判断二维数组中是否有该整数。
思路:从右上角开始查询,左边比它小,右边比它大.
function Find(target, array) {
const rowNum = array.length;
const colNum = array[0].length;
if(!rowNum) {
return false;
}
if(!colNum){
return false;
}
let row = 0;
let col = colNum - 1;
while(row < rowNum && col >= 0){
if(target < array[row][col]){
col--;
}
if(target > array[row][col]){
row++;
}
if(target === array[row][col]){
return true;
}
}
return false;
}
时间复杂度:O(m+n)