Skip to content

Commit 485ff19

Browse files
committed
feat: add solutions to lc problem: No.2301
No.2301.Match Substring After Replacement
1 parent 3a149bf commit 485ff19

File tree

9 files changed

+352
-135
lines changed

9 files changed

+352
-135
lines changed

solution/1800-1899/1825.Finding MK Average/README.md

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -239,56 +239,49 @@ class MKAverage {
239239
if (q.size() > m) {
240240
int x = q.poll();
241241
if (lo.containsKey(x)) {
242-
lo.merge(x, -1, Integer::sum);
243-
if (lo.get(x) == 0) {
242+
if (lo.merge(x, -1, Integer::sum) == 0) {
244243
lo.remove(x);
245244
}
246245
--size1;
247246
} else if (hi.containsKey(x)) {
248-
hi.merge(x, -1, Integer::sum);
249-
if (hi.get(x) == 0) {
247+
if (hi.merge(x, -1, Integer::sum) == 0) {
250248
hi.remove(x);
251249
}
252250
--size3;
253251
} else {
254-
mid.merge(x, -1, Integer::sum);
255-
if (mid.get(x) == 0) {
252+
if (mid.merge(x, -1, Integer::sum) == 0) {
256253
mid.remove(x);
257254
}
258255
s -= x;
259256
}
260257
}
261258
for (; size1 > k; --size1) {
262259
int x = lo.lastKey();
263-
lo.merge(x, -1, Integer::sum);
264-
if (lo.get(x) == 0) {
260+
if (lo.merge(x, -1, Integer::sum) == 0) {
265261
lo.remove(x);
266262
}
267263
mid.merge(x, 1, Integer::sum);
268264
s += x;
269265
}
270266
for (; size3 > k; --size3) {
271267
int x = hi.firstKey();
272-
hi.merge(x, -1, Integer::sum);
273-
if (hi.get(x) == 0) {
268+
if (hi.merge(x, -1, Integer::sum) == 0) {
274269
hi.remove(x);
275270
}
276271
mid.merge(x, 1, Integer::sum);
277272
s += x;
278273
}
279274
for (; size1 < k && !mid.isEmpty(); ++size1) {
280275
int x = mid.firstKey();
281-
mid.merge(x, -1, Integer::sum);
282-
if (mid.get(x) == 0) {
276+
if (mid.merge(x, -1, Integer::sum) == 0) {
283277
mid.remove(x);
284278
}
285279
s -= x;
286280
lo.merge(x, 1, Integer::sum);
287281
}
288282
for (; size3 < k && !mid.isEmpty(); ++size3) {
289283
int x = mid.lastKey();
290-
mid.merge(x, -1, Integer::sum);
291-
if (mid.get(x) == 0) {
284+
if (mid.merge(x, -1, Integer::sum) == 0) {
292285
mid.remove(x);
293286
}
294287
s -= x;

solution/1800-1899/1825.Finding MK Average/README_EN.md

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -207,56 +207,49 @@ class MKAverage {
207207
if (q.size() > m) {
208208
int x = q.poll();
209209
if (lo.containsKey(x)) {
210-
lo.merge(x, -1, Integer::sum);
211-
if (lo.get(x) == 0) {
210+
if (lo.merge(x, -1, Integer::sum) == 0) {
212211
lo.remove(x);
213212
}
214213
--size1;
215214
} else if (hi.containsKey(x)) {
216-
hi.merge(x, -1, Integer::sum);
217-
if (hi.get(x) == 0) {
215+
if (hi.merge(x, -1, Integer::sum) == 0) {
218216
hi.remove(x);
219217
}
220218
--size3;
221219
} else {
222-
mid.merge(x, -1, Integer::sum);
223-
if (mid.get(x) == 0) {
220+
if (mid.merge(x, -1, Integer::sum) == 0) {
224221
mid.remove(x);
225222
}
226223
s -= x;
227224
}
228225
}
229226
for (; size1 > k; --size1) {
230227
int x = lo.lastKey();
231-
lo.merge(x, -1, Integer::sum);
232-
if (lo.get(x) == 0) {
228+
if (lo.merge(x, -1, Integer::sum) == 0) {
233229
lo.remove(x);
234230
}
235231
mid.merge(x, 1, Integer::sum);
236232
s += x;
237233
}
238234
for (; size3 > k; --size3) {
239235
int x = hi.firstKey();
240-
hi.merge(x, -1, Integer::sum);
241-
if (hi.get(x) == 0) {
236+
if (hi.merge(x, -1, Integer::sum) == 0) {
242237
hi.remove(x);
243238
}
244239
mid.merge(x, 1, Integer::sum);
245240
s += x;
246241
}
247242
for (; size1 < k && !mid.isEmpty(); ++size1) {
248243
int x = mid.firstKey();
249-
mid.merge(x, -1, Integer::sum);
250-
if (mid.get(x) == 0) {
244+
if (mid.merge(x, -1, Integer::sum) == 0) {
251245
mid.remove(x);
252246
}
253247
s -= x;
254248
lo.merge(x, 1, Integer::sum);
255249
}
256250
for (; size3 < k && !mid.isEmpty(); ++size3) {
257251
int x = mid.lastKey();
258-
mid.merge(x, -1, Integer::sum);
259-
if (mid.get(x) == 0) {
252+
if (mid.merge(x, -1, Integer::sum) == 0) {
260253
mid.remove(x);
261254
}
262255
s -= x;

solution/1800-1899/1825.Finding MK Average/Solution.java

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,56 +29,49 @@ public void addElement(int num) {
2929
if (q.size() > m) {
3030
int x = q.poll();
3131
if (lo.containsKey(x)) {
32-
lo.merge(x, -1, Integer::sum);
33-
if (lo.get(x) == 0) {
32+
if (lo.merge(x, -1, Integer::sum) == 0) {
3433
lo.remove(x);
3534
}
3635
--size1;
3736
} else if (hi.containsKey(x)) {
38-
hi.merge(x, -1, Integer::sum);
39-
if (hi.get(x) == 0) {
37+
if (hi.merge(x, -1, Integer::sum) == 0) {
4038
hi.remove(x);
4139
}
4240
--size3;
4341
} else {
44-
mid.merge(x, -1, Integer::sum);
45-
if (mid.get(x) == 0) {
42+
if (mid.merge(x, -1, Integer::sum) == 0) {
4643
mid.remove(x);
4744
}
4845
s -= x;
4946
}
5047
}
5148
for (; size1 > k; --size1) {
5249
int x = lo.lastKey();
53-
lo.merge(x, -1, Integer::sum);
54-
if (lo.get(x) == 0) {
50+
if (lo.merge(x, -1, Integer::sum) == 0) {
5551
lo.remove(x);
5652
}
5753
mid.merge(x, 1, Integer::sum);
5854
s += x;
5955
}
6056
for (; size3 > k; --size3) {
6157
int x = hi.firstKey();
62-
hi.merge(x, -1, Integer::sum);
63-
if (hi.get(x) == 0) {
58+
if (hi.merge(x, -1, Integer::sum) == 0) {
6459
hi.remove(x);
6560
}
6661
mid.merge(x, 1, Integer::sum);
6762
s += x;
6863
}
6964
for (; size1 < k && !mid.isEmpty(); ++size1) {
7065
int x = mid.firstKey();
71-
mid.merge(x, -1, Integer::sum);
72-
if (mid.get(x) == 0) {
66+
if (mid.merge(x, -1, Integer::sum) == 0) {
7367
mid.remove(x);
7468
}
7569
s -= x;
7670
lo.merge(x, 1, Integer::sum);
7771
}
7872
for (; size3 < k && !mid.isEmpty(); ++size3) {
7973
int x = mid.lastKey();
80-
mid.merge(x, -1, Integer::sum);
81-
if (mid.get(x) == 0) {
74+
if (mid.merge(x, -1, Integer::sum) == 0) {
8275
mid.remove(x);
8376
}
8477
s -= x;

0 commit comments

Comments
 (0)