У меня есть проблемы с производительностью по времени, когда я выполняю тесты производительности для своего кода.
Итак, я разработал этот алгоритм и результаты со значениями, данными моим профессором в колледже, которые были правильными.Проблема в том, что время выключено.Я полагаю, это потому, что у меня есть много вложенных циклов if и for.Есть ли более оптимальный способ сделать это?
def решение (A, K):
mov = -1
pmov = -1
ball_out = False
right_mov = False
down_mov = False
n = 0
count = 0
if (K == 0):
return 0
while (n < K):
for i in range(0,(len(A[0])-1)):
for j in range(0,(len(A))-1):
if (A[i][j] == -1):
mov = -1
if(A[i][j-1] == -1):
pmov = -1
down_mov = True
right_mov = False
elif(A[i][j-1] == 1):
pmov = 1
down_mov = False
right_mov = True
elif(A[i][j-1] == 0):
pmov = 0
elif (A[i][j] == 1):
mov = 1
if(A[i][j-1] == -1):
pmov = -1
down_mov = True
right_mov = False
elif(A[i][j-1] == 1):
pmov = 1
down_mov = False
right_mov = True
elif(A[i][j-1] == 0):
pmov = 0
elif (A[i][j] == 0):
mov = 0
if(A[i][j-1] == -1):
pmov = -1
down_mov = True
right_mov = False
elif(A[i][j-1] == 1):
pmov = 1
down_mov = False
right_mov = True
elif(A[i][j-1] == 0):
pmov = 0
if (A[i-1][j-1] == -1 and down_mov == True):
count += 1
elif (A[i-1][j-1] == 0 and down_mov == True):
count += 1
elif (A[i-1][j-1] == 1):
pass
return count
A = [[-ele for ele in item] for item in A]
#negamos la matriz
n += 1
pass