通过重新排列元素以Python中的程序获得列表的最大值
假设我们有一个包含N个正数的列表nums。现在我们可以从列表中选择任何一个值,并将其移动(而不是交换)到任何位置。我们也可以完全不将任何值移动到位置。所以我们必须找出列表的最大可能最终功率是多少?正如我们所知,列表的功率是所有指数i上的(index+1)*value_at_index总和。
因此,如果输入是nums=[6,2,3],那么输出将是26,因为我们可以将6移动到最后以获取列表[2,3,6],因此功率为:(21)+(32)+(6*3)= 26。
为了解决这个问题,我们将执行以下步骤-
- P:值为0的列表
-
基数:= 0
-
对于A中的每个索引i和值x,执行以下操作
- 将P的最后一个元素+x插入P的末尾
-
base:= base + (i+1) * x
-
答案:=基数
-
对于A中的每个索引i和值x,执行以下操作
- 对于范围为0到A的大小+1的j,执行以下操作
- 答案:=ans和(base + P[i] – P[j] – (i-j)*x)的最大值
- 对于范围为0到A的大小+1的j,执行以下操作
- 返回ans
更多Python相关文章,请阅读:Python 教程
示例
让我们看下面的实现,以便更好地理解-