2
public int[] fullBloomFlowers(int[][] flowers, int[] persons) {3
int n = persons.length;4
int[] result = new int[n];6
TreeMap<Integer, Integer> treeMap = new TreeMap<>();7
// See explanation here:8
// https://leetcode.com/problems/my-calendar-iii/discuss/109556/JavaC%2B%2B-Clean-Code9
for (int[] flower : flowers) {10
treeMap.put(flower[0], treeMap.getOrDefault(flower[0], 0) + 1);11
// use end + 1 instead of end12
treeMap.put(flower[1] + 1, treeMap.getOrDefault(flower[1] + 1, 0) - 1);15
TreeMap<Integer, Integer> sum = new TreeMap<>();17
for (Map.Entry<Integer, Integer> entry : treeMap.entrySet()) {18
prev += entry.getValue();19
sum.put(entry.getKey(), prev);22
for (int i = 0; i < n; i++) {23
Map.Entry<Integer, Integer> entry = sum.floorEntry(persons[i]);24
// if entry is null then result[i] = 025
if (entry != null) result[i] = entry.getValue();