火星上睫毛

文章
3
资源
0
加入时间
3年0月28天

一种削峰算法

加入有九座山,高度分别是[9,8,7,6,5,4,3,2,1];削掉峰值的总和是k,怎样可以尽可能的削减高峰。有没有一种办法,可以直接算出削峰之后的平均线,然后所有高出这个平均线的都一把削掉,而不是一米一米的削掉呢?按照常规逻辑,每次将最高的减少一米,然后山峰重新排序,接着再将最高的削减一米,直到k次使用完。按照这种思路,可以使用大顶堆来解决,每次将最大值取出来减一之后再塞回去。但是这种操作在大用例集下会超时,因为是一个一个操作。削峰算法,故名思义,就是将峰值高的地方铲掉。...