华为OD机试真题精讲:数字螺旋矩阵(Python/Java/C++多语言实现)
一、题目描述(2025B卷高频100分题)
数字螺旋矩阵是指一个n×n的二维矩阵,数字从1开始,按照顺时针螺旋方向(右→下→左→上)依次填充,直至填满n²个数字。
给定一个正整数n,请生成并输出该n×n的数字螺旋矩阵。若n为1,则直接输出[[1]]。
关键约束
- 正整数
1 ≤ n ≤ 1000(支持大规模矩阵生成,需考虑空间与时间效率); - 数字填充必须严格遵循“右→下→左→上”的顺时针螺旋顺序,且数字连续递增(1~n²);
- 时间限制1秒,空间限制256MB;
- 输出格式要求:二维矩阵格式,每行元素用空格分隔,整体用方括号包裹(符合常规矩阵输出规范)。
示例说明
| 输入 | 输出 | 说明 |
|---|---|---|
| 1 | [[1]] | 1×1矩阵,仅包含数字1 |
| 3 | [[1, 2, 3], [8, 9, 4], [7, 6, 5]] | 3×3螺旋矩阵,按顺时针填充完 |