Leetcode 每日一题:1014. 最佳观光组合

暴力法 ————》超时

思路:

分数= A[i] +A[j]+i-j => (A[i]+i) + (A[j]-j)

每个景点要找到在他之后的最大评分:逆序求最大值

待优化

class Solution:
    def maxScoreSightseeingPair(self, A: List[int]) -> int:
        start = [A[i]+i for i in range(len(A))]
        end= [A[i]-i for i in range(len(A))]
        max1 = 0
        max2 = end[-1]
        for i in range(len(A)-2,-1,-1):
            end[i] = max(end[i],max2)
            max2 = max(end[i],max2) 

        max1 = 0
        for i in range(len(A)-1):
            max1 = max(start[i]+end[i+1],max1)
        return max1

  

原文地址:https://www.cnblogs.com/SuckChen/p/13152241.html