在Python中寻找旋转后数组的最大加权和的程序
假设我们有一个数组,我们必须找到旋转数组元素的最大加权和。可以像下面这样计算数组元素的加权和nums −
因此,如果输入是L = [5,3,4],则输出将为26,因为
- 数组是[5,3,4],总和为5 + 23 + 34 = 5 + 6 + 12 = 23
-
数组是[3,4,5],总和为3 + 24 + 35 = 3 + 8 + 15 = 26(最大值)
-
数组是[4,5,3],总和为4 + 25 + 33 = 4 + 10 + 9 = 23
要解决这个问题,我们将执行以下步骤−
- n:nums的大小
- sum_a:nums中所有元素的和
- ans:对于范围0到n的所有i,所有元素(nums [i] *(i + 1))的总和
- cur_val:ans
- 对于i在范围0到n-1中,执行以下操作
- cur_val:cur_val – sum_a + nums [i] * n
- ans:ans和cur_val的最大值
- 返回ans
示例
让我们看下面的实现,以获得更好的理解−