在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解:
对角线上的数字是这一个小方块最大的数字,因此和这个数字做比较,若小于这个数字,说明有可能存在在这个方块中,因此,查找数字所在的行、列的数字,若有相等,返回true,否则,返回false。
function Find(num, arrays)
{
var clen = arrays[0].length;
var rlen = arrays.length;
for(var i=0;i<rlen;i++){
if(num == arrays[i][i]) return true;
if(num < arrays[i][i]){
for(var j=0;j<i;j++){
if(num == arrays[j][i]) return true;
if(num == arrays[i][j]) return true;
}
}
}
return false;
}