博客
关于我
剑指 Offer 04. 二维数组中的查找
阅读量:555 次
发布时间:2019-03-09

本文共 694 字,大约阅读时间需要 2 分钟。

由于这个二维数组的结构是按行递增、按列递减排列的,我们可以从右上角开始搜索目标值。具体来说,右上角是数组的黄金位置,因为它几乎同时包含了行和列的高值特征。

我们可以通过以下步骤进行搜索:

  • 如果当前元素等于目标值,说明我们找到了目标值,应该立即返回true。
  • 如果当前元素小于目标值,那么说明目标值可能存在于当前位置的左侧。由于数组按行递增,我们继续向左移动列指针。
  • 如果当前元素大于目标值,说明目标值可能存在于当前位置的下方。由于数组按列递减,我们继续向下移动行指针。
  • 如果遍历完整个数组都没有找到目标值,则返回false。
  • 这种方法有助于我们快速缩小搜索范围,只关注可能存在目标值的区域,从而提高搜索效率。

    /**  * @param {number[][]} matrix  * @param {number} target  * @return {boolean}  */var findNumberIn2DArray = function (matrix, target) {    if (!matrix.length) return false;    let i = 0, j = matrix[0].length - 1;    while (i < matrix.length && j >= 0) {        if (matrix[i][j] === target) return true;        else if (matrix[i][j] < target) i++;        else j--;    }    return false;};

    转载地址:http://bcxpz.baihongyu.com/

    你可能感兴趣的文章
    缓冲区溢出实例(一)--Windows
    查看>>
    PHP一句话木马小总结与SQL语句写一句话木马
    查看>>
    Python中字符串前添加r ,b, u, f前缀的含义
    查看>>
    Hadoop学习笔记—Yarn
    查看>>
    JSONPath小试牛刀之Snack3
    查看>>
    Jenkins - 部署在Tomcat容器里的Jenkins,提示“反向代理设置有误”
    查看>>
    wxWidgets源码分析(3) - 消息映射表
    查看>>
    wxWidgets源码分析(5) - 窗口管理
    查看>>
    wxWidgets源码分析(7) - 窗口尺寸
    查看>>
    wxWidgets源码分析(8) - MVC架构
    查看>>
    wxWidgets源码分析(9) - wxString
    查看>>
    Mybatis Generator最完整配置详解
    查看>>
    [白话解析] 深入浅出熵的概念 & 决策树之ID3算法
    查看>>
    [梁山好汉说IT] 梁山好汉和抢劫银行
    查看>>
    [源码解析] 消息队列 Kombu 之 基本架构
    查看>>
    [源码分析] 消息队列 Kombu 之 启动过程
    查看>>
    [源码分析] 消息队列 Kombu 之 Consumer
    查看>>
    抉择之苦
    查看>>
    wx.NET CLI wrapper for wxWidgets
    查看>>
    Silverlight for linux 和 DLR(Dynamic Language Runtime)
    查看>>