我刚开始编程,所以我的问题似乎很幼稚。
我需要一个给出这样的矩阵的函数:

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]


谢谢

最佳答案

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]等上),并且当发现对角线比当前对角线高时,请替换结果中的坐标(对不起,我的英语不好)。

关于python - 在矩阵python中找到元素的最长对角线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47330812/

10-12 20:14