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

如何在4×4矩阵中找出所有长度为3的对角线?求解题思路

解题切入点与方向指导

核心前提

先明确三个关键参数:矩阵的行数rows、列数cols,以及目标对角线长度target_len(此处为3)。所有符合要求的对角线分为左上→右下和右上→左下两种方向,可分开处理。


1. 处理左上→右下的正对角线

起点范围判定

要生成长度为target_len的正对角线,起点的行索引i和列索引j必须满足:

  • i + target_len - 1 < rows:确保从起点向下走target_len-1步后,不超出矩阵的行边界
  • j + target_len - 1 < cols:确保从起点向右走target_len-1步后,不超出矩阵的列边界

生成对角线逻辑

对每个符合条件的起点(i,j),依次取matrix[i + k][j + k](k从0到target_len-1),即可得到一条完整的目标对角线。

以你提供的4×4矩阵为例:

  • 行索引i可选0、1(0+2=2<4,1+2=3<4)
  • 列索引j可选0、1(0+2=2<4,1+2=3<4)
  • 对应生成的4条对角线:[1,12,23]、[2,13,24]、[11,22,33]、[12,23,34]

2. 处理右上→左下的反对角线

起点范围判定

要生成长度为target_len的反对角线,起点的行索引i和列索引j必须满足:

  • i + target_len - 1 < rows:确保从起点向下走target_len-1步后,不超出矩阵的行边界
  • j - target_len + 1 >= 0:确保从起点向左走target_len-1步后,不超出矩阵的列边界

生成对角线逻辑

对每个符合条件的起点(i,j),依次取matrix[i + k][j - k](k从0到target_len-1),即可得到一条完整的目标对角线。

以你提供的4×4矩阵为例:

  • 行索引i可选0、1(0+2=2<4,1+2=3<4)
  • 列索引j可选3、2(3-2=1≥0,2-2=0≥0)
  • 对应生成的4条对角线:[4,13,22]、[3,12,21]、[14,23,32]、[13,22,31]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 20:03:33