每日一題力扣396

2022-06-05 10:39:15 字數 820 閱讀 1961

給定乙個長度為 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)中的最大值。

方案一:

找規律找出來的,

class

solution:

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)])

方案二:

大佬的錯位相減法

class

solution:

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...