File tree Expand file tree Collapse file tree 1 file changed +58
-0
lines changed
Expand file tree Collapse file tree 1 file changed +58
-0
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ title : 1825. Seek out MK average value
3+ date : ' 2024.01.01 0:00'
4+ tags :
5+ - - Python
6+ - - unsolved
7+ - - difficulty
8+ - - Multiple set
9+ abbrlink : 6be57ef7
10+ ---
11+
12+
13+ # Problem -solving
14+
15+ maintain 3 indivual multiset:lower(Minimum kkk indivual数)、middle(Number in the middle)、upper(Most kkk indivual数)。
16+
17+ # Insert operation
18+
19+ ·if num≤max(lower),Then lowerInsert num
20+ ·if num≥min(upper),Then upper Insert num
21+ ·otherwise,exist middle Insert num
22+ if插入后,lower or upper There are more elements than k indivual,Then middle middle Transfer element
23+
24+ 操作过程middlemaintain middle 的element和 sum
25+
26+ # Delete operation
27+
28+ ·设删除的element为 d
29+ ·d 一定存exist于 lower ormiddle or upper middle的一indivualor多indivual集合middle
30+ ·Choose one delete
31+ if删除后,lower or upper middle的element少于 k indivual,Then from middle middle Obtain element
32+
33+ 操作过程middlemaintain middle 的element和 sum
34+
35+ # average value操作
36+ average value = sum/(m−2⋅k)sum / (m - 2\cdot k)sum/(m−2⋅k) (Take down)。
37+
38+ Code with problems:
39+ ``` python
40+ class MKAverage :
41+
42+ def __init__ (self , m : int , k : int ):
43+ self .m = m
44+ self .k = k
45+ self .list1 = []
46+
47+ def addElement (self , num : int ) -> None :
48+ self .list1.append(num)
49+
50+ def calculateMKAverage (self ) -> int :
51+ if len (self .list1) < self .m:
52+ return - 1
53+ else :
54+ list2 = self .list1[- 1 :- self .m- 1 :- 1 ]
55+ list2 = sorted (list2)
56+ list2 = list2[self .k:len (list2) - self .k]
57+ return sum (list2) // len (list2)
58+ ```
You can’t perform that action at this time.
0 commit comments