• 数组----二维数组中的查找


    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

    方法一:由于每行都是从左到右递增,每列都是从上到下递增可得:

    左下角的数m,是该行的最小值,该列的最大值,从左下角开始遍历

    若 target>m,右移一位,遍历整行

    若target<m,上移一位,从上行开始遍历

    若target=m,return  true

    function Find(target, array)
    
    {
    
            let rows = array.length;
    
            let  cols = array[0].length;
    
            if(rows == 0||cols==0){
    
                return false;
    
            }
    
            // 左下
    
            let row = rows-1;
    
            let col = 0;
    
            while(row>=0 && col<cols){
    
                if(target>array[row][col]){
    
                    col++;
    
                }else if(target<array[row][col]){
    
                    row--;
    
                }else{
    
                    return true;
    
                }
    
            }
    
            return false;
    
    }

    方法二:从右上方开始遍历,右上方数字n为该行最大值,该列最小值

    若targe>n,下移一位,从下行开始遍历

    若target<n,左移一位,遍历整行

    若target=n,return true

    function Find(target, array)
    
    {
    
            let rows = array.length;
    
            let  cols = array[0].length;
    
            if(rows == 0||cols==0){
    
                return false;
    
            }
    
            // 右上
    
            let row = 0;
    
            let col = cols-1;
    
            while(row<rows && col>=0){
    
                if(target>array[row][col]){
    
                    row++
    
                }else if(target<array[row][col]){
    
                    col--
    
                }else{
    
                    return true;
    
                }
    
            }
    
            return false;
    
    }
  • 相关阅读:
    javascript 介绍
    命令提示符(命令行)
    node(1) hello world
    用Vgg16来提取特征
    VGG16学习
    注意力模型
    统计学习方法
    数字图像处理(五)
    数字图像处理(四)
    BN
  • 原文地址:https://www.cnblogs.com/mlebk/p/12462555.html
Copyright © 2020-2023  润新知