Problem: 2681. 英雄的力量
思路
- 选取与顺序无关先排序
- 接下来只要枚举所有子序列的最大值的平方和最小值的乘积之和
- 注意到只和最大值和最小值有关
解题方法
- 确定了子序列的最大值之后,我们只需要确定子序列里面各个值最小值出现了几次
- 也就是确定排序后的
必选且为最大值时,我们假设此时在答案中与除自身之外他的平方相乘的所有值之和为 ,此时有答案 - 不去管
现在为多少,我们假设现在要选取的是 为最大值,则注意到对于子序列 - 如果不选
, 也会和 相乘 - 如果选取
,对于所有 不是最小值的情况, 也会和 相乘,而 是最小值的情况只有一个(也就是选取 和 两个)
- 如果不选
- 根据以上的两个推理,我们能够得出
,既
- 时间复杂度
- 空间复杂度
Code
1 | class Solution: |
1 | class Solution { |