我刚开始编程,所以我的问题似乎很幼稚。
我需要一个给出这样的矩阵的函数:
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
添加到i
和j
(例如,如果在'2'
上找到m[1][1]
,则循环迭代在m[2][2]
,m[3][3]
等上),并且当发现对角线比当前对角线高时,请替换结果中的坐标(对不起,我的英语不好)。关于python - 在矩阵python中找到元素的最长对角线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47330812/