1.求鞍点位置(至多一个)

n=int(input()) a=[] for i in range(0,n): b=input().split() a.insert(i,b) c=[] d=[] for i in range(0,n): maxa=max([int(a[i][j]) for j in range(n)]) mina=min([int(a[k][i]) for k in range(n)]) c+=[(i,j) for j in range(n) if int(a[i][j])==maxa] d+=[(k,i) for k in range(n) if int(a[k][i])==mina] result=[] for element in c: if element in d: result.append(element) if (result!=[]): print(*result[0]) else: print('NONE')
2.求鞍点个数
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
本题要求编写程序,求一个给定的n阶方阵的鞍点。
输入格式: 输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。
输出格式: 鞍点的个数
n=int(input()) a=[] count=0 count1=0 cnt=0 for i in range(n): s=input() a.append([int(n) for n in s.split()]) for j in range(n): if count1 == n and count == n: break for k in range(n): for k1 in range(n): if a[j][k]>=a[j][k1]: count+=1 if count==n: for j1 in range(n): if a[j][k]<=a[j1][k]: count1+=1 if count1==n: cnt=cnt+1 count1=0 count=0 print(cnt)