可以优化时间和空间,酱婶儿写只是思路更清晰一些~
这个是和更大
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