Problem -solving
maintain 3 indivual multiset:lower(Minimum kkk indivual数)、middle(Number in the middle)、upper(Most kkk indivual数)。
Insert operation
·if num≤max(lower),Then lowerInsert num
·if num≥min(upper),Then upper Insert num
·otherwise,exist middle Insert num
if插入后,lower or upper There are more elements than k indivual,Then middle middle Transfer element
操作过程middlemaintain middle 的element和 sum
Delete operation
·设删除的element为 d
·d 一定存exist于 lower ormiddle or upper middle的一indivualor多indivual集合middle
·Choose one delete
if删除后,lower or upper middle的element少于 k indivual,Then from middle middle Obtain element
操作过程middlemaintain middle 的element和 sum
average value操作
average value = sum/(m−2⋅k)sum / (m - 2\cdot k)sum/(m−2⋅k) (Take down)。
Code with problems:
1 | class MKAverage: |