Skip to content

Commit d3cf905

Browse files
add 2055
1 parent 49bb98f commit d3cf905

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ _If you like this project, please leave me a star._ ★
88

99
| # | Title | Solutions | Video | Difficulty | Tag
1010
|-----|----------------|---------------|--------|-------------|-------------
11+
|2055|[Plates Between Candles](https://leetcode.com/problems/plates-between-candles/)|[Java](../master/src/main/java/com/fishercoder/solutions/_2055.java) ||Medium||
1112
|2053|[Kth Distinct String in an Array](https://leetcode.com/problems/kth-distinct-string-in-an-array/)|[Java](../master/src/main/java/com/fishercoder/solutions/_2053.java) ||Easy||
1213
|2050|[Parallel Courses III](https://leetcode.com/problems/parallel-courses-iii/)|[Java](../master/src/main/java/com/fishercoder/solutions/_2050.java) ||Hard||
1314
|2048|[Next Greater Numerically Balanced Number](https://leetcode.com/problems/next-greater-numerically-balanced-number/)|[Java](../master/src/main/java/com/fishercoder/solutions/_2048.java) ||Medium||
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.fishercoder.solutions;
2+
3+
import java.util.TreeMap;
4+
5+
public class _2055 {
6+
public static class Solution1 {
7+
public int[] platesBetweenCandles(String s, int[][] queries) {
8+
int[] ans = new int[queries.length];
9+
TreeMap<Integer, Integer> treeMap = new TreeMap<>();
10+
int left = 0;
11+
int right = 0;
12+
while (left < s.length() && s.charAt(left) != '|') {
13+
left++;
14+
}
15+
treeMap.put(left, 0);
16+
int count = 0;
17+
while (left < s.length()) {
18+
if (s.charAt(left) == '|') {
19+
right = left + 1;
20+
while (right < s.length() && s.charAt(right) != '|') {
21+
count++;
22+
right++;
23+
}
24+
if (right < s.length()) {
25+
treeMap.put(right, count);
26+
}
27+
left = right;
28+
} else {
29+
left++;
30+
}
31+
}
32+
for (int i = 0; i < queries.length; i++) {
33+
int l = queries[i][0];
34+
int r = queries[i][1];
35+
Integer start = treeMap.ceilingKey(l);
36+
Integer end = treeMap.floorKey(r);
37+
if (start == null || end == null || start >= end) {
38+
continue;
39+
}
40+
ans[i] = treeMap.get(end) - treeMap.get(start);
41+
}
42+
return ans;
43+
}
44+
}
45+
}

0 commit comments

Comments
 (0)