Проблема Python BallSwitchBall.Проблема со временем выполнения - PullRequest
0 голосов
/ 29 января 2019

У меня есть проблемы с производительностью по времени, когда я выполняю тесты производительности для своего кода.

Итак, я разработал этот алгоритм и результаты со значениями, данными моим профессором в колледже, которые были правильными.Проблема в том, что время выключено.Я полагаю, это потому, что у меня есть много вложенных циклов 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...