給定乙個長度為 n 的整數陣列 a 。
假設 bk 是陣列 a 順時針旋轉 k 個位置後的陣列,我們定義 a 的「旋轉函式」 f 為:
f(k) = 0 * bk[0] + 1 * bk[1] + ... + (n-1) * bk[n-1]。
計算f(0), f(1), ..., f(n-1)中的最大值。
方案一:
找規律找出來的,
classsolution:
def maxrotatefunction(self, a: list[int]) ->int:
l=len(a)
if l==0:
return
0
else
:
return max([sum([j*a[j-i] for j in range(l)]) for i in range(l)])
方案二:
大佬的錯位相減法
classsolution:
def maxrotatefunction(self, a: list[int]) ->int:
n =len(a)
cur = sum(a[i] * i for i in
range(n))
_sum =sum(a)
res =cur
for i in range(1, n):
cur = _sum - n * a[-i] +cur
res =max(res, cur)
return
res
每日一題 力扣 計畫
98 驗證二叉搜尋樹 問題給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 1.節點的左子樹只包含小於當前節點的數。2.節點的右子樹只包含大於當前節點的數。3.所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true示例2 輸入 5 1 4...
力扣每日一題 6 14
1300 轉變陣列後最接近目標值的陣列和 給你乙個整數陣列 arr 和乙個目標值 target 請你返回乙個整數 value 使得將陣列中所有大於 value 的值變成 value 後,陣列的和最接近 target 最接近表示兩者之差的絕對值最小 如果有多種使得和最接近 target 的方案,請你返...
每日一題力扣48
給定乙個 n n 的二維矩陣 matrix 表示乙個影象。請你將影象順時針旋轉 90 度。你必須在 原地 旋轉影象,這意味著你需要直接修改輸入的二維矩陣。請不要 使用另乙個矩陣來旋轉影象。正解 旋轉90度就是,先鏡面對稱,再轉置即可 class solution defrotate self,mat...