給定正整數陣列 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...