作者:俊惠芸菁亚扬 | 来源:互联网 | 2023-06-14 20:16
描述:给定的一个二维数组,该二维数组从左往右从,上往下依次增大,给定一个元素值,求该元素值是否是在该数组中。解决办法先将待查找元素(设为key)与数组最右上角元素(设为a)对比:若
描述:
给定的一个二维数组,该二维数组从左往右从,上往下依次增大,给定一个元素值,求该元素值是否是在该数组中 。
解决办法
先将待查找元素(设为key)与数组最右上角元素(设为a)对比:
- 若a>key,因数值大小从上往下递增,故该元素往下一定不存在key值,故可以删除该列。
- 若a 重复进行即可判断是否存在该元素。
图解
二维数组如下所示
key=7
其过程如下 :
其实现代码很简单:如下所示
function Find(arr,rows,colmuns,key){
var found=false;
if(arr!=null && rows>0 && colmuns>0 )
{
var row=0;
var colmun=colmuns-1;
while(row0)
{
if(arr[row][colmun]==key)
return true;
else if(arr[row][colmun]>key)
{
colmun--;
}
else
row++;
}
return found;
}
return found;
}
var arr=[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]];
flag=Find(arr,4,4,7);
console.log(flag); //1,存在