PythonBallSwitchBall问题。与时间有关的问题

2024-09-30 00:34:29 发布

您现在位置:Python中文网/ 问答频道 /正文

在对代码进行性能测试时,我遇到了时间性能问题

所以,我设计了这个算法和结果,我的大学教授给出的值是正确的。问题是,时间性能已关闭。我想这是因为我有很多嵌套的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

Tags: inrightfalsetrueforreturnifcount

热门问题