如果直接用暴力的话,只能过4个样例好像,超时
因此得用递推公式
F1=F0+前n-1个数-(n-1)*第n个数
=F0+sum(nums)-n*第n个数
n=len(nums)
ans=[]#定义一个存最大值值的列表
ss = sum(nums)
dm = 0
for j in range(n):dm += j * nums[j]
ans.append(dm)
print(dm)
num_s=nums
for i in range(1, n):dm = dm + ss - n*num_s[-1]ans.append(dm)num_s=[]num_s[:] = nums[-i % n:] + nums[:-i % n]
return max(ans)
但是还是超时样例
嗯
应该是python切片也超时了
逆天,
class Solution:def maxRotateFunction(self, nums: List[int]) -> int:n=len(nums)ans=[]#定义一个存最大值值的列表ss=sum(nums)dm=0for j in range(n):dm+=j*nums[j]ans.append(dm)for i in range(1,n):dm=dm+ss-n*nums[-1]ans.append(dm)nums[-1]=nums[-(i+1)]return max(ans)
下一道