You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写程序按指定路径规则输出n×n矩阵的元素

实现思路
  • 需求对应的输出顺序本质是顺时针螺旋遍历n×n矩阵,可以通过维护上下左右四个边界的方式实现,逻辑清晰不易出错:
    1. 先定义四个边界值:上边界top=0,下边界bottom = n-1,左边界left=0,右边界right = n-1
    2. 按顺序遍历四条边,每遍历完一条边就收缩对应边界,直到上下/左右边界交叉就停止遍历:
      • 第一步:从左到右遍历上边界所在的整行,遍历完成后上边界向下+1
      • 第二步:从上到下遍历右边界所在的列(从更新后的上边界开始到下边界结束),遍历完成后右边界向左-1
      • 第三步:先判断上下边界是否还有效,有效则从右到左遍历下边界所在的行,遍历完成后下边界向上-1
      • 第四步:先判断左右边界是否还有效,有效则从下到上遍历左边界所在的列(从更新后的下边界开始到上边界结束),遍历完成后左边界向右+1
    3. 所有遍历到的元素按顺序拼接,就是要求的输出结果。
Python 可运行代码
# 读取输入
n = int(input())
matrix = []
for _ in range(n):
    row = list(map(int, input().split()))
    matrix.append(row)

result = []
top, bottom = 0, n - 1
left, right = 0, n - 1

while top <= bottom and left <= right:
    # 遍历上边界:左→右
    for i in range(left, right + 1):
        result.append(str(matrix[top][i]))
    top += 1
    # 遍历右边界:上→下
    for i in range(top, bottom + 1):
        result.append(str(matrix[i][right]))
    right -= 1
    # 遍历下边界:右→左,先判断边界有效性
    if top <= bottom:
        for i in range(right, left - 1, -1):
            result.append(str(matrix[bottom][i]))
        bottom -= 1
    # 遍历左边界:下→上,先判断边界有效性
    if left <= right:
        for i in range(bottom, top - 1, -1):
            result.append(str(matrix[i][left]))
        left += 1

# 按要求格式输出
print(' '.join(result))

上述代码代入题目给出的输入示例,输出结果和示例完全一致。

内容的提问来源于stack exchange,提问作者dcapslolxd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 03:06:05