【问题描述】
如果整型数组A中存在这样的一个元素A[i, j],满足条件:A[i, j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。请编程计算出m*n的矩阵A的所有马鞍点,若矩阵中不存在马鞍点,应给出相应的信息。
【输入形式】
输入的第一行两个数据分别为矩阵的m,n值,以空格间隔;
第二行为整型数组中的所有元素,以空格间隔,按行来保存数据
【输出形式】输出所有的马鞍点,域宽为4(%4d);若无,打印 no。
【样例输入】
5 5
1 2 3 4 5 7 3 4 5 6 2 1 5 4 3 5 3 6 5 4 5 3 6 5 4
【样例输出】3 3 3
【样例说明】输入5*5的矩阵,第一行的数据为1 2 3 4 5,第二行 7 3 4 5 6,以此类推:
1 2 3 4 5
7 3 4 5 6
2 1 5 4 3
5 3 6 5 4
5 3 6 5 4
输出本数组中的三个个马鞍点3(1行1列) 3(3行1列) 3(4行1列),输出的域宽为4。
a=list(map(int,input().strip().split()))
hang=int(a[0])
lie=int(a[1])
c=[]
e=list(map(int,input().strip().split()))
for i in range(hang):
c.append([int(d) for d in e[i*lie:i*lie+lie]])
#print(c)
flag=False
for i in range(hang):
b=c[i].index(min(c[i]))
k=0
while k < hang:
if c[i][b]>=c[k][b]:
k+=1
if k==hang:
flag=True
print('{:<4}'.format(c[i][b]),end='')
else:
break
if flag==False:
print("no")
However,竟然没拿满分,俺也不知道为什么,回头再改吧,哼
同时附上格式化输出的链接:
https://blog.csdn.net/i_chaoren/article/details/77922939