• 1.二维数组中的查找


    在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
    思路1:while循环row<=array.length-1&&col>=0行小于等于数组长度,列大于等于0,从左下角的数arr[1][0],或者右上角arr[0][j]---(j=arr[0].length-1)和target比较。如果大于target说明在第一行左边,小于target说明在第二行右边
    function Find(target, array)
    {
    // write code here
    var row=0;
    var col=array[0].length-1;
    while(row<=array.length-1&&col>=0){
    if(target==array[row][col]){
    return true;
    }else if(target>array[row][col]){
    row++;
    }else{
    col--;
    }
    }
    return false;
    }
    module.exports = {
    Find : Find
    };
     
    思路2:二分查找,遍历array的长度,设为行数。
    每行找到0和length-1;找到mid
    while循环()
    用每行的array[i][mid]和target比较。如果小于target,说明在右半部份,low变大mid+1
    如果大于target,说明在左半部分,high变小mid-1.
    function Find(target, array)
    {
    // write code here
    for(var i=0;i<array.length;i++){
    var low=0;
    var high=array[i].length-1;
    while(low<=high){
    var mid=(low+high)/2;
    if(target==array[i][mid]){
    return true;
    }else if(target>array[i][mid]){
    low=mid+1;
    }else{
    high=mid-1;
    }
    }
    return false;
    }
    }
  • 相关阅读:
    1049.(*) Counting Ones
    1135(重、错)Is It A Red-Black Tree
    3、如何判断一棵树是否是红黑树?
    2、以自定义struct或struct指针作为map的Key
    1、(★、※)如何判断一棵树是否是完全二叉树?
    1123.(重、错)Is It a Complete AVL Tree
    160819流水账
    150819流水账
    140819流水账
    130819流水账
  • 原文地址:https://www.cnblogs.com/ziqian9206/p/7159003.html
Copyright © 2020-2023  润新知