Leetcode - Pairs of Songs With Total Durations Divisible by 60
Leetcode - Add to Array-Form of Integer

Leetcode - Best Sightseeing Pair

violet posted @ Apr 07, 2020 07:51:44 AM in 算法 with tags Algorithm Golang array , 208 阅读

https://leetcode.com/problems/best-sightseeing-pair/

Given an array A of positive integers, A[i] represents the value of the i-th sightseeing spot, and two sightseeing spots i and j have distance j - i between them.

The score of a pair (i < j) of sightseeing spots is (A[i] + A[j] + i - j) : the sum of the values of the sightseeing spots, minus the distance between them.

Return the maximum score of a pair of sightseeing spots.

 

Example 1:

Input: [8,1,5,2,6]
Output: 11
Explanation: i = 0, j = 2, A[i] + A[j] + i - j = 8 + 5 + 0 - 2 = 11

 

A[i] + A[j] + i - j can be treated as A[i] + i and A[j] - j. So tracking the max sum of A[i] + A[j] + i - j and updating i by compare A[i] + i with A[j] + j.

func maxScoreSightseeingPair(A []int) int {
    i := 0
    max := A[i] + i
    for j := 1; j < len(A); j++ {
        tmp := A[i] + i + A[j] - j
        if tmp > max {
            max = tmp
        }
        if A[i] + i < A[j] + j {
            i = j
        }
    }
    return max
}

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter