Python-Programm zur Suche nach dem minimalen Element, das n-mal in einer Matrix nacheinander vorkommt
Gegeben eine Matrix mit n Zeilen. Jede Zeile hat die gleiche Anzahl von m Elementen. Die Aufgabe besteht darin, Elemente zu finden, die n-mal horizontal, vertikal und diagonal in der Matrix nacheinander auftreten. Wenn es mehrere solcher Elemente gibt, drucken Sie das kleinste Element. Wenn es kein solches Element gibt,
drucken Sie -1.
Beispiele:
Eingabe: n = 4 mat [5] [5] 2 1 3 4 5 3 2 1 3 4 5 3 2 1 4 5 4 3 2 1 5 4 4 3 2 Ausgabe: 1 Eingabe: n = 2 mat [4] [4] 2 0 5 1 0 5 3 5 8 4 1 1 3 8 5 2 Ausgabe: 0
Implementierung:
def
check(l,row,col ,n,l2):
for
i
in
range
(row
-
n
+
1
):
for
j
in
range
(col
-
n
+
1
):
num
=
l[i][j]
if
(row
-
i >
=
n
and
col
-
j >
=
n):
count
=
0
for
k
in
range
(n):
if
(num !
=
l[i
+
k][j
+
k]):
break
else
:
count
+
=
1
if
(count
=
=
n):
l2.append(num)
else
:
break
for
i
in
range
(row):
for
j
in
range
(col
-
(n
-
1
) ):
num
=
l[i][j]
count
=
0
for
k
in
range
(n):
if
num !
=
l[i][j
+
k]:
break
else
:
count
+
=
1
if
(count
=
=
n):
l2.append(num)
for
i
in
range
(row
-
(n
-
1
)):
for
j
in
range
(col):
num
=
l[i][j]
count
=
0
for
k
in
range
(n):
if
num !
=
l[i
+
k][j]:
break
else
:
count
+
=
1
if
(count
=
=
n):
l2.append(num)
for
i
in
range
(
0
,
int
(row
/
2
)):
for
j
in
range
(i, col
-
i
-
1
):
num
=
l[i][j]
l[i][j]
=
l[j][col
-
1
-
i]
l[j][col
-
1
-
i]
=
l[row
-
1
-
i][col
-
1
-
j]
l[row
-
1
-
i][col
-
1
-
j]
=
l[row
-
1
-
j][i]
l[row
-
1
-
j][i]
=
num
for
i
in
range
(row
-
n
+
1
):
for
j
in
range
(col
-
n
+
1
):
num
=
l[i][j]
if
(row
-
i >
=
n
and
col
-
j >
=
n):
count
=
0
for
k
in
range
(n):
if
(num !
=
l[i
+
k][j
+
k]):
break
else
:
count
+
=
1
if
(count
=
=
n):
l2.append(num)
else
:
break
if
(
len
(l2)
=
=
0
):
(
-
1
)
else
:
(
min
(l2))
if
__name__
=
=
"__main__"
:
l
=
[[
2
,
1
,
3
,
4
,
5
],
[
0
,
2
,
1
,
3
,
4
],
[
5
,
0
,
2
,
1
,
4
],
[
5
,
4
,
0
,
2
,
1
],
[
5
,
4
,
4
,
0
,
2
]]
l2
=
[]
check(l,
4
,
4
,
2
,l2)
Ausgabe :
0