You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
然后做的就是分析示例,摸清想法了。假设排好序的数组[a,b,c,d],我们可以得到以下计算公式:a * a * a,b * b * b + b * b * a,c * c * c + c * c * b + c * c * a * 2,d * d * d + d * d * c + d * d * b * 2 + d * d * a * 4. 可以发现有规律,计算式子之间有递进关系。
Leetcode 2681. Power of Heroes
2681. Power of Heroes
贡献法(Python/Java/C++/Go)
看到题目关键条件max * max * min,加上要求所有序列,所以想到与排序无关,直接排序。
然后做的就是分析示例,摸清想法了。假设排好序的数组[a,b,c,d],我们可以得到以下计算公式:
a * a * a
,b * b * b + b * b * a
,c * c * c + c * c * b + c * c * a * 2
,d * d * d + d * d * c + d * d * b * 2 + d * d * a * 4
. 可以发现有规律,计算式子之间有递进关系。接着,是一个关键的思路选择问题。假设我们从左往右遍历,以当前nums[i]值作为min值,会发现是个递减关系,要用逆元来做,太麻烦了,所以不妨把nums[i]值设置为max值。
抛开当前值,可以发现每个值与前面的值比较是乘2再加上nums[i-1]。
最后注意要MOD,乘法的MOD最后%就好。
The text was updated successfully, but these errors were encountered: