• 【剑指offer】01 二维数组中的查找


    题目地址:二维数组中的查找

    题目描述                                   

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

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M

    题目示例                                   

    输入:
    7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]

    返回值:
    true

    解法分析                                   

    本题可理解为target与数组中的值作比较,若相等则返回true,不等则返回false,考虑到效率问题,可以从数列左下角数值开始对比,target大于该数值则向右查找,target小于该数值则向上查找。

    代码                                         

     1 function Find(target, array)
     2 {
     3     const i=array.length;
     4     const j=array[0].length;
     5     var m=i-1;
     6     var n=0;
     7     while(m>=0&&n<=j-1){
     8         if(target>array[m][n]){
     9             n++;
    10         }else if(target<array[m][n]){
    11             m--;
    12         }else return true;
    13     }
    14     return false;
    15 }

    执行结果                                   

  • 相关阅读:
    sock文件
    Django---数据迁移
    Linux磁盘占满 no space left on device
    Linux关闭防火墙命令
    linux系统搭建zookeeper集群
    Linux下安装zookeeper-3.4.13
    CentOS7.5安装JDK1.8
    CentOS下搭建NFS服务器总结
    NFS客户端挂载目录后无写入权限的解决方案
    centos关机与重启命令
  • 原文地址:https://www.cnblogs.com/sunlinan/p/14171640.html
Copyright © 2020-2023  润新知