HRT OA 题解|矩阵按圈排序,最后一行为什么会写两遍
HRT 的 Sort Matrix Borders 练习要求每一圈单独排序,再从该圈左上角顺时针写回。最容易漏掉的是最里面只剩一行或一列时,四条边已经不再独立。 FastPrep 题目页 将它标为 HRT Intern OA,并注明原始。
HRT 的 Sort Matrix Borders 练习要求每一圈单独排序,再从该圈左上角顺时针写回。最容易漏掉的是最里面只剩一行或一列时,四条边已经不再独立。 FastPrep 题目页 将它标为 HRT Intern OA,并注明原始数值范围不完整。以下只解析这道带公司标签的练习,不把它归到另一位候选人的整场笔试中。
第一题:矩阵边框排序
题目描述
给定整数矩形矩阵。最外圈由首尾行和首尾列组成,去掉外圈后继续处理内圈。每圈的值升序排列,从左上角开始顺时针放回;单行或单列也算一圈。 自拟例子: [[8,1,6],[7,9,2],[5,4,3]] 变成 [[1,2,3],[8,9,4],[7,6,5]] 。外圈八个数重新排列,中心的 9 留在原处。不能将全部元素一起排序。
解题思路
用 top、bottom、left、right 表示当前圈。先生成坐标列表,再读取这些位置的值、排序,最后按同一份坐标列表写回。提取和回填共用坐标,能避免两遍循环的方向不一致。 只剩一行时,从左到右收集;只剩一列时,从上到下收集。其余情况依次取上边整行、右边去掉首格、下边去掉右下角、左边去掉上下两个角。每个角只出现一次。完成后四个边界各向内缩一格。 在写排序逻辑前,先检查坐标数量。正常矩形边框的格数为 2×高度+2×宽度−4 ;单行和单列分别等于宽度和高度。值正确但坐标重复,回填后仍会丢数。 复杂度 :设矩阵为 n×m,每格只属于一圈,总时间 O(nm log(n+m))。原地回填时,坐标和值列表最多保存一圈,额外空间 O(n+m)。
HRT OA 如何检查矩阵题
用 1×5、5×1、2×4 和 3×5 的矩阵逐个测试,再加入重复值与负数。每圈排序前后的值及出现次数必须相同;沿顺时针读出结果,应当非递减。这样能同时查出漏格、重复角点和回填方向错误。 纽约 SWE 的 2025 年 7 月经历包含 OA、电话面和现场面;另有 C++ 候选人记录了 75 分钟四题,Intern 经历也强调限时实现与调试。具体题数和时长按自己的邀请安排,练习时则把边界检查计入限时。
FAQ
最内圈只有两个数,也要排序吗?
要。它仍是一圈,按单行或单列规则处理,不能因为缺少四条边就跳过。
能直接用螺旋遍历的全部坐标吗?
可以复用遍历思路,但必须保留每圈的分界。整条螺旋序列一起排序会让不同圈的数互换。
如何确认没有漏掉某个位置?
测试时把坐标加入集合,检查总数等于 n×m,且没有重复。正式实现不必保留这个调试集合。
参考来源
FastPrep:Sort Matrix Borders 题目与来源说明 Reddit:HRT C++ SWE 的 CodeSignal 经历 Taro:纽约 SWE 的 OA、电话面与 onsite 经历 Glassdoor:SWE Intern 候选人的 OA 与 C++ 面试记录
联系 VOPathway
如果你希望把这套方法用于自己的 OA 或 VO 准备,可以把目标岗位、当前阶段、面试时间和主要难点发给 VOPathway,我们会据此安排针对性的练习与复盘。
- 微信:Coding0201
- 邮箱:[email protected]
- Telegram:@OAVOProxy
- WhatsApp:+86 178 6396 8105
可提供 OA辅助、OA辅导、VO辅助与 VO辅导。文章用于训练参考,不代表相关公司的官方流程;实际安排请以候选人收到的通知为准。
本文用于面试准备与训练复盘。公司名称仅用于标识题型素材主题,不代表官方合作或录用承诺。
预约一次训练复盘 ↗