题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。代码部分:<script>
function Find(target, array)
{
    for(var i=0;i<=array.length-1;i++){
     for(var j=0;j<=i;j++){
     if(target==array[i][j]){
             alert("finded "+j+","+i);
         }
     }
    }
}
var array=[[1,2,3],[4,5,6],[7,8,9]];
Find(9,array);
</script>

解决方案 »

  1.   

    1、题目只说每个一维数组长度相同,没说一维数组和二维数组的长度是一样的
    2、要求判断是否存在,应该返回true或者false
    3、程序可以优化,这是有序数组,比如用二分法查找,不用遍历
      

  2.   

    <script>
    function Find(target, array)
    {
        for(var i=0;i<=array.length-1;i++){
         for(var j=0;j<=array[i].length-1;j++){
         if(target==array[i][j]){
                 alert("finded "+j+","+i);
             }
         }
        }
    }
    var array=[[1,2,3],[4,5,6],[7,8,9]];
    Find(9,array);   // 输出finded2,2  第一个2是7,8,9的9下标 第二个是array的下标2
    </script>
    改成这样看看