博客
关于我
剑指 Offer 04. 二维数组中的查找
阅读量:554 次
发布时间: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/

    你可能感兴趣的文章
    模拟集成:MOS管的工作区小误区(简单版)
    查看>>
    flink启动(二)
    查看>>
    前端开发进阶手册.pdf
    查看>>
    110.无限叠卡特效
    查看>>
    软件架构设计和MESH经验之谈
    查看>>
    redis持久化分析
    查看>>
    慕课网前端项目:Vue2.0+Node.js+MongoDB全栈打造商城系统 笔记 整理【6/18】
    查看>>
    复杂指针解析
    查看>>
    打开word时424错误
    查看>>
    如何添加开机自启项
    查看>>
    ❤️一个18k运维项目经验这样做的,offer到碗里来❤️
    查看>>
    关于宝塔面板安装的mysql用Navicat连接出现2003的错误解决
    查看>>
    Windows2016 FTP用户隔离
    查看>>
    js传入参数是中文的时候出现 “******”未定义错误
    查看>>
    responded with a status of 404 ()
    查看>>
    吴恩达机器学习课程笔记(英文授课) Lv.1 新手村(回归)
    查看>>
    pair的用法
    查看>>
    SQL基本操作命令
    查看>>
    强制类型转换原理
    查看>>
    伪类选择器
    查看>>