Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class RangeModule {
- TreeMap<Integer,Integer> map;
- public RangeModule() {
- map = new TreeMap<>();
- }
- public void addRange(int left, int right) {
- var l = map.floorEntry(left);
- var r = map.floorEntry(right);
- if(l!=null && l.getValue()>=left) left=l.getKey();
- if(r!=null && r.getValue()>right) right=r.getValue();
- map.subMap(left,right).clear();
- map.put(left,right);
- }
- public boolean queryRange(int left, int right) {
- var l=map.floorEntry(left);
- return l!=null && l.getValue()>=right;
- }
- public void removeRange(int left, int right) {
- var l = map.floorEntry(left);
- var r = map.floorEntry(right);
- if (l != null && l.getValue() > left) map.put(l.getKey(), left);
- if (r != null && r.getValue() > right) map.put(right, r.getValue());
- map.subMap(left, right).clear();
- }
- }
- /**
- * Your RangeModule object will be instantiated and called as such:
- * RangeModule obj = new RangeModule();
- * obj.addRange(left,right);
- * boolean param_2 = obj.queryRange(left,right);
- * obj.removeRange(left,right);
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement