我的目标是创建一个以数组为参数的方法,并输出其每个子数组的min()值之和。然而,我真的不明白我的列表理解有什么问题。
class Solution(object):
def sumSubarrayMins(self, arr):
s = 0
self.subarrays = [arr[i:j] for i in range(j-1,len(arr))for j in range(1,len(arr)+1)]
for subarray in self.subarrays:
s += min(subarray)
return s
sol = Solution()
sol.sumSubarrayMins([3,1,2,4])
我经常尝试用python tutor调试,但在这种情况下真的没有帮助。
1条答案
按热度按时间6za6bjd01#
您的子数组计算逻辑错误。您尝试在定义
j
之前,在第一个循环中使用它。请尝试以下操作: