ITPub博客

首页 > IT职业 > IT图书 > 剑指offer 二维数组中的查找

剑指offer 二维数组中的查找

IT图书 作者:xzwsun 时间:2021-09-09 09:02:17 0 删除 编辑

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
这道题借鉴了别人的思想 ,想明白之后,自己敲出来了。
解题思路是:这是一个二维有序数组,如果我们要在这里面找到目标值,共有四个角可以作为切入点,但是左上角和右下角有同样的问题,在判断之后又分岔路的问题,这两个角,两个方向上都是增大的,对于我们解题没有任何益处。但是左下角和右上角,在判断之后可以选择一条路进行下面的判断,本例中以左下角为 例,如果左下角的那个值大于目标值,那么说明目标值小,那么我们此时应该让行递减,如果左下角那个值小于目标值,那么说明目标值大,那么我们此时应该让列递增。
在明晰了思路之后,开始code

var a=[[1,2,3],[4,5,6],[7,8,9]]

function Find(arr,target){
    var hang=arr.length;  //行
    var lie=arr[0].length;  //列
    // 将位置定位到左下角  
    var i=hang-1
    var j=0; 
//如果行列都等于零,就没必要判断啦 
    if(hang===0&&lie===0){
        return false;
    }   
    while(i>=0&&jtarget){
            i--;
        }
        // 如果左下角的值小于需要找的目标值,那么就应该向左走 此时列应该增加
        else if(a[i][j]lie-1){
        return false;
    }

}

Find(a,5)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2567/viewspace-2807759/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-16

  • 博文量
    100
  • 访问量
    923