Skip to content

Commit 110eaf0

Browse files
committed
chore: add daily leetcode post 1825求出 MK 平均值_translated
1 parent 5ff89e4 commit 110eaf0

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
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+
```

0 commit comments

Comments
 (0)