展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > 不规则二维数组在算法题中的应用

不规则二维数组在算法题中的应用

不规则二维数组按需分配长度,贴合杨辉三角、树层序遍历、动态规划非对称状态表及稀疏数据等自然形态,避免空间浪费。遍历时以每行实际长度为界,如实反映数据结构,是优化空间复杂度、匹配问题本征形状的关键。

本文目录
    不规则二维数组不是“特殊技巧”,而是贴合现实数据形态的自然选择。比如杨辉三角、稀疏矩阵、树层序遍历、DP状态表等,天然就适合这么干:逐行动态分配长度,按需存储,避免空间浪费,遍历时记得以每行实际长度为界就行。

    说白了,不规则二维数组在算法题里压根不是什么炫技的东西,它只是如实反映了数据长得什么样。整齐划一的矩形矩阵固然好看,但现实数据往往没那么听话——杨辉三角、稀疏矩阵、树形结构的层序表示、动态规划中那些状态数量参差不齐的表,才是最自然的存在。

    杨辉三角:最典型的不规则数组建模

    杨辉三角第 n 行有 n+1 个元素,行长度逐行递增。要是非要用一个规则的二维数组去装它,比如声明一个 int[100][100],结果一半空间都是闲置的,看着就心疼。而不规则数组就能精准匹配这个形状:

    • 先声明 int[][] triangle = new int[n][];,只确定行数,列数先不设。
    • 再逐行初始化:triangle[i] = new int[i + 1];,每行长度刚好等于行号加1。
    • 填值时只需要判断边界情况:if (j == 0 || j == i) triangle[i][j] = 1;,否则就是 triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];。

    你看,代码逻辑本身和规则数组几乎一样,但空间省了一大截,而且每行的“长出”是完全自然发生的。

    树的层序遍历结果存储

    二叉树按层遍历(BFS)之后,每层节点数是不确定的。满二叉树每层呈指数增长,但实际树可能左倾或右倾,层数分布千差万别。把每层节点存到一个一维数组里,再把所有层数组组合成二维数组——这就是标准的不规则结构:

    • 用 List> 是逻辑上最直观的等价结构,但算法题常常要求返回 int[][],那就得手动转一下。
    • 具体做法:先 BFS 一遍统计每层节点数,然后分配每行长度,最后再遍历填值。
    • 遍历时千万别默认 result[i].length == result[0].length,内层循环上限必须是 result[i].length,否则下标越界。

    这其实很合理:你遍历树的时候,树自己告诉你每层有多少个节点,那就按它说的来分配长度,何必硬塞进一个正方形里?

    动态规划中的非对称状态表

    有些 DP 问题的状态维度天生就不统一。比如“单词拆分 II”这道题,dp[i] 存储所有能组成前 i 个字符的句子列表,不同 i 对应的句子数量可能差出几个数量级:

    • 可以建模为 List dp,再转成 String[][],本质上就是不规则二维数组。
    • 回溯填充的时候,每行长度由实际解的数量决定,你根本没法预设列数,强行固定列只会浪费内存或者丢掉解。
    • 输出或进一步处理时,必须逐行判空、逐元素访问,跳过那些可能为 null 的行。

    这种场景下,不规则数组不是“优化选项”,而是唯一自然的表达方式——问题本身决定了数据形状不规则,你用规则数组反而要额外处理一堆边界逻辑。

    稀疏数据的紧凑表示

    当二维数据里大量位置是空的——比如棋盘上只有少数格子有棋子、社交图中只有部分用户有好友关系——用不规则数组替代全量矩阵,节省的空间和时间都很可观:

    • 做法是每行只存该行所有非零元素的列索引与值对,形成 int[][] sparseRows。
    • 遍历统计时,外层循环行号,内层循环该行实际有效项,完全不用扫描全列,复杂度从 O(行数×列数) 降到 O(非零元素个数)。
    • 如果还需要快速列向查询,可以额外维护一个哈希表或二分查找结构,不过那是另一个话题了。

    本质上,不规则二维数组的价值就在于“按需分配”和“如实反映结构”。在算法题里,它往往是优化空间复杂度、匹配问题本征形状的关键一步,绝不是为了炫技而用的花架子。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    Maya(Autodesk Maya) Windows版
    Maya(Autodesk Maya) Windows版

    Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirServer Windows版
    AirServer Windows版

    AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。