leetcode演算法學習 6 最佳觀光組合

2021-10-07 06:34:51 字數 1560 閱讀 3179

給定正整數陣列 a,a[i] 表示第 i 個觀光景點的評分,並且兩個景點 i 和 j 之間的距離為 j - i。

一對景點(i < j)組成的觀光組合的得分為(a[i] + a[j] + i - j):景點的評分之和減去它們兩者之間的距離。

返回一對觀光景點能取得的最高分。

示例:

輸入:[8,1,5,2,6]

輸出:11

解釋:i = 0, j = 2, a[i] + a[j] + i - j = 8 + 5 + 0- 2 = 11

class

solution

:def

maxscoresightseeingpair

(self, a: list[

int])-

>

int:

max_score=

0for i in

range

(len

(a))

:for j in

range

(i+1

,len

(a))

: score=a[i]

+a[j]

+i-j

if score>=max_score:

max_score=score

return max_score

class

solution

:def

maxscoresightseeingpair

(self, a: list[

int])-

>

int:

max_score=

0 pre_max=a[0]

+0for j in

range(1

,len

(a))

: max_score=

max(max_score,pre_max+a[j]

-j) pre_max=

max(pre_max,a[j]

+j)return max_score

class

solution

:def

maxscoresightseeingpair

(self, a: list[

int])-

>

int:

max_score=

0 pre_max=a[0]

for j in

range(1

,len

(a))

: max_score=max_score if max_score>=pre_max+a[j]

-j else pre_max+a[j]

-j pre_max=pre_max if pre_max>=a[j]

+j else a[j]

+j return max_score

演算法學習 6

計數排序是假設陣列a中的元素都是在0到k區間內的整數。構建乙個陣列c 0,k 初始化為 1,如果陣列a中的元素互異的話,那麼把a的元素拷貝到c中 c a i a i 然後遍歷c,把非 1的元素依次拷貝到陣列a中即可完成排序。但陣列有元素相等要怎麼處理了。元素互異的做法,還可以是c 0,k 初始化為0...

LeetCode 演算法學習 2

longest substring without repeating characters given a string,find the length of the longest substring without repeating characters.example 1 input ab...

演算法學習 python 6

氣泡排序 coding utf 8 def bubblesort list1 for j in range 0,len list1 1 增加乙個計數器 count 0 for i in range len list1 1 j,j,1 if list1 i list1 i 1 list1 i list...