Files
LeetCode-Go/leetcode/0396.Rotate-Function/396. Rotate Function.go
2022-07-06 15:13:53 +08:00

19 lines
303 B
Go

package leetcode
func maxRotateFunction(nums []int) int {
n := len(nums)
var sum, f int
for i, num := range nums {
sum += num
f += i * num // F(0)
}
ans := f
for i := 1; i < n; i++ {
f += sum - n*nums[n-i] // F(i) = F(i-1) + sum - n*nums[n-i]
if f > ans {
ans = f
}
}
return ans
}