已知一个 3× 3 的矩形填数结果如下: 1 4 7\ 8 2 5\ 6 9 3 那么,对于任意一个 n× n 的矩形,规则为,先填好对角线,再往右上填好,再到最左下,再往右上,再左下......,每个数字出现一次,且不大于边长的乘积,需把 1 n × n 数字不重不漏的填入矩形,能否快速输出其填数结果?
本题为多组测试数据,第一行输入一个正整数 T( 1≤ T≤ 100) ,代表测试数据的组数。 接下去 T 行,每行输入一个正整数 n( 1≤ n≤ 100) ,代表矩形边长。
对于每组测试数据,输出一个 n 行 n 列的矩形,代表填数结果。
2 3 6
1 4 7 8 2 5 6 9 3 1 7 13 19 25 31 32 2 8 14 20 26 27 33 3 9 15 21 22 28 34 4 10 16 17 23 29 35 5 11 12 18 24 30 36 6
考点:模拟
数据规模 n ≤ 100 | 限制 1 秒 / 64MB | 标准输入输出
推荐方向:模拟
本题切入点
二维数组按对角线方向蛇形填数:控制行列边界与方向翻转,逐格写入 1..n²。
不涉及复杂算法,把题目描述的流程原样翻译成代码逐步执行即可。
思路框架(模拟 通法 · 非本题专属)
实现要点:结构上通常是一个外层循环包住若干 if/else 分支;只要状态定义清楚,正确率很高。
复杂度:时间 O(操作次数) | 空间 O(状态数)
该范式的通法易错点
对照本题
样例 1
2 / 3 / 61 4 7 / 8 2 5 / 6 9 3 / 1 7 13 19 25 31 / 32 2 8 14 20 26 / 27 33 3 9 15 21 / 22 28 34 4 10 16 / 17 解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2024年秋招-贝壳找房-前端工程师-第二批笔试;2024年秋招-贝壳找房-测试开发工程师-第二批笔试。