[leetcode]ベスト観光グループ

5037 ワード

時間と空間を最適化することができて、味噌おばさんは書くのはただ構想がもっとはっきりしているだけです~これはもっと大きいです
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