В настоящее время я решаю разные проблемы, и я наткнулся на это: https://leetcode.com/problems/container-with-most-water/submissions/
Один ответ, который я решил, был:
class Solution:
def maxArea(self, height: List[int]) -> int:
maxarea = 0
for x in height:
for y in range(x+1,len(height)):
maxarea = max((y-x)*(min(height[x],height[y])), maxarea)
return maxarea
, а другой был :
class Solution:
def maxArea(self, height: List[int]) -> int:
maxarea = 0
for x in range(len(height)-1):
for y in range(x+1,len(height)):
maxarea = max(maxarea, min(height[x], height[y])*(y-x))
return maxarea
Однако эти двое решают разное количество тестовых случаев. Второй решает это нормально, хотя и превышает время, а первый - нет.
Я понимаю, что это не самый эффективный способ, но может ли кто-нибудь просмотреть лог c и объяснить, почему один ведет себя не так, как другой? Проблема должна быть в двух операторах for l oop, в строках 4 и 5 для обоих. .