找到matrix-python中元素的最长对角线

时间:2017-11-16 13:22:47

标签: python matrix diagonal

我对编程很新,所以我的问题可能看起来很幼稚。 我需要一个给出像这样的矩阵的函数:

m=[['2','3','2','4','2','2','1']
   ['5','2','6','2','7','2','2']
   ['5','3','9','4','2','6','8']]

- 找到元素的最长对角线' 2' (它不必从第一行开始):

['2','2','2']

- 输出矩阵中对角线的第一个元素的位置:

m[0][2]

由于

1 个答案:

答案 0 :(得分:1)

result=[0,0]
maxdiag = 0
for i in range (0, len(m)):
  for j in range (0, len(m[i])):
    k = 0;
    while (i+k < len(m) and j+k < len(m[0]) and m[i+k][j+k] == '2'):
      k+=1;
      if (k > maxdiag):
        maxdiag = k;
        result[0]=i;
        result[1]=j;

坐标存储在result

在我看来,这是经验解决方案。

迭代矩阵,当找到'2'时,迭代“对角线”将迭代器k添加到ij(例如,如果找到'2'上的m[1][1]您的循环会在m[2][2]m[3][3]等等上进行迭代,当您找到比当前对角线更高的对角线时,请替换以下坐标结果(抱歉我的英语不好)。