1.题目
2.求解
每次循环的时候加上sum(nums)减去nums[-1] * length即是循环数组后得到的结果。
需要注意的是,得到的最大值可能是负值,因此初始化ans = -sys.maxsize。
3.代码
class Solution:
def maxRotateFunction(self, nums: List[int]) -> int:
ans = -sys.maxsize
cnt = 0
s = sum(nums)
length = len(nums)
for i in range(length):
cnt += (i * nums[i])
for i in range(length):
ans = max(ans, cnt)
cnt = cnt + s - nums[-(i + 1)] * length
return ans