Class CountIntervals

java.lang.Object
g2201_2300.s2276_count_integers_in_intervals.CountIntervals

public class CountIntervals extends java.lang.Object
2276 - Count Integers in Intervals.

Hard

Given an empty set of intervals, implement a data structure that can:

  • Add an interval to the set of intervals.
  • Count the number of integers that are present in at least one interval.

Implement the CountIntervals class:

  • CountIntervals() Initializes the object with an empty set of intervals.
  • void add(int left, int right) Adds the interval [left, right] to the set of intervals.
  • int count() Returns the number of integers that are present in at least one interval.

Note that an interval [left, right] denotes all the integers x where left <= x <= right.

Example 1:

Input

[“CountIntervals”, “add”, “add”, “count”, “add”, “count”]

[ [], [2, 3], [7, 10], [], [5, 8], []]

Output: [null, null, null, 6, null, 8]

Explanation:

 CountIntervals countIntervals = new CountIntervals(); // initialize the object with an empty set of intervals.
 countIntervals.add(2, 3);  // add [2, 3] to the set of intervals.
 countIntervals.add(7, 10); // add [7, 10] to the set of intervals.
 countIntervals.count();    // return 6
                            // the integers 2 and 3 are present in the interval [2, 3].
                            // the integers 7, 8, 9, and 10 are present in the interval [7, 10].
 countIntervals.add(5, 8);  // add [5, 8] to the set of intervals.
 countIntervals.count();    // return 8
                            // the integers 2 and 3 are present in the interval [2, 3].
                            // the integers 5 and 6 are present in the interval [5, 8].
                            // the integers 7 and 8 are present in the intervals [5, 8] and [7, 10].
                            // the integers 9 and 10 are present in the interval [7, 10].

Constraints:

  • 1 <= left <= right <= 109
  • At most 105 calls in total will be made to add and count.
  • At least one call will be made to count.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(int left, int right)
     
    int
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • CountIntervals

      public CountIntervals()
  • Method Details

    • add

      public void add(int left, int right)
    • count

      public int count()