可以优化时间和空间,酱婶儿写只是思路更清晰一些~
这个是和更大
class Solution:
def maxScoreSightseeingPair(self, A: List[int]) -> int:
n = len(A)
ID = [i for i in range(n)]
B = [A[i] - ID[i] for i in range(n)]
C = [A[i] + ID[i] for i in range(n)]
maxn = 0
D = [0] * n
D[n-1] = B[n-1]
'''从后往前找,找当前id值的后面的最大值'''
for i in range(n-2,-1,-1):
D[i] = max(D[i+1], B[i])
for i in range(n-1):
maxn = max(maxn, C[i] + D[i+1])
return maxn
本文介绍了一种通过优化时间和空间复杂度来提升算法效率的方法。具体实现中,使用了列表和动态规划技巧,如从后往前查找最大值,以及利用预处理数组进行快速求解。这种方法适用于解决特定类型的问题,例如寻找配对的最大观光得分。文章详细展示了如何用Python实现这一算法,并通过实例说明其应用。
508

被折叠的 条评论
为什么被折叠?



