python3: найти максимальное значение | Ай - Ай | + | я - j |: - PullRequest
0 голосов
/ 20 января 2020

Нажмите здесь , чтобы просмотреть источник проблемы

Учитывая массив 'A', состоящий из 'n' целых чисел, требуется найти максимальное значение следующего выражения:

        |Ai - Aj| + |i - j|

где Ai - элемент массива в i-й позиции (0-индексированный массив)

Мое решение:

def solve(n,l):
    ans=0
    for i in range(n):
        for j in range(n):
            if ans < (abs(l[i]-l[j])+abs(i-j)):
                ans=(abs(l[i]-l[j])+abs(i-j))
                print(ans)


t=int(input())
for _ in range(t):
    n=int(input())
    l = list(map(int,input().split()))
    solve(n,l)    

Этот код проходит во всех тестовых примерах, но когда я, наконец, отправляю код для двух входов, он показывает неверный результат, а для всех остальных входов он показывает превышение лимита времени

Пожалуйста, укажите, что не так и что можно сделать, чтобы получить правильный вывод.

1 Ответ

0 голосов
/ 20 января 2020

Как насчет использования max с итерационным пониманием, подобным этому:

def solve(values):
   values = [int(num) for num in values.split()]
   print(max(abs(Ai - Aj) + abs(i - j) for i, Ai in enumerate(values) for j, Aj in enumerate(values)))

...