|
20鱼币
说明:假设给定一个 m * n 的矩阵,如果某一个元素的值在同一行的所有元素中最小,并且在同一列的所有元素中最大,那么该元素便是幸运数字。
我的思路:先找同一行中最小的数,并找出其列数 "a[i]",后用此数和它的列数比较同一列中每个数,判断其是否为最大的数。若是,添加到空列表b中,最后打印b。
s = [[10, 36, 52],
[33, 24, 88],
[66, 76, 99]]
a = [0]*3
minx = [0]*3
for i in range(3):
for j in range(2):
if s[i][j] <= s[i][j+1]:
minx[i] = s[i][j]
a[i] = j
if s[i][j] > s[i][j+1]:
minx[i] = s[i][j+1]
a[i] = j+1
b = []
for i in range(3):
j = 0
count = 0
while j < 3:
if minx[i] >= s[j][a[i]]:
j += 1
count +=1
if count ==3:
b.append(minx[i])
print(b)
- s = [[10, 36, 52],
- [33, 24, 88],
- [66, 76, 99]]
- s1 = list(zip(*s))
- for m in range(len(s)):
- for n in range(len(s[m])):
- if min(s[m]) == max(s1[n]):
- print(s[m][n])
复制代码
|
|