日常記錄 :LeetCode 1014題最佳觀光組合

Java

class Solution {
    public int maxScoreSightseeingPair(int[] A) {
        if ( A.length <= 1 ) return 0 ;
        if ( A.length == 2) return  A[0] + A[1] - 1 ;

        int res = 0 , cur = 0 ;
        for ( int v : A) {
            res = Math.max(res, cur + v);
            cur = Math.max(cur, v) - 1;
        }
        return res;
    }
}

Go

func maxScoreSightseeingPair(A []int) int {
    if len(A) <= 1 { return 0 }
	if len(A) == 2 { return A[0] + A[1] - 1}
	ans,max :=  0 ,A[0] + 0
	for i := 1 ; i < len(A)  ; i++ {
		if ans < max + A[i] - i {
			ans = max + A[i] - i
		}
		if max < A[i] + i {
			max = A[i] + i
		}
	}
	return ans
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章