剑指Offer Day1

二维数组中的查找

时间复杂度:O(n^2)
空间复杂度:O(1)

function Find(target, array)
{
    // write code here
    for(var i=0;i

更新
从左上角或者右下角开始查找都很麻烦,从左下角开始,第一个数字是每一行最小的数字&每一列最大的数字,如果小于这个数字,就可以整体上移一行i–,如果大于这个数字,就可以整体右移一列j++。
右上角同理。

时间复杂度:O(行高 + 列宽)O(行高+列宽)
空间复杂度:O(1)O(1)

function Find(target, array)
{
    // write code here
    var rol=array.length;//行数
    var col=array[0].length;//每个一维数组长度相同,列数
    if(rol==0||col==0){
        return false;//数组无数据
    }
    if(targetarray[rol-1][col-1]){
        return false;//小于最小,大于最大,不存在
    }
    //从左下开始查找
    var i=rol-1;
    var j=0;
    while(i>=0 && jarray[i][j]){
            j++;
        }else{
            i--;
        }
    }
    return false;
}

你可能感兴趣的:(前端学习)