Example #1
0
  public void addNum(int val) {
    if (hash.contains(val)) return;
    hash.add(val);

    Interval tmp = new Interval(val, val);

    Interval greater = set.ceiling(tmp);
    Interval smaller = set.floor(tmp);

    if (greater != null) {
      // System.out.println("greater:"+greater.start+" "+greater.end+" val:"+val);
      if (greater.start == val + 1) {
        greater.start = val;
        merge(smaller, greater);

        return;
      }
    }
    if (smaller != null) {
      // System.out.println("smaller:"+smaller.start+" "+smaller.end+" val:"+val);
      if (smaller.end == val - 1) {
        smaller.end = val;
        merge(smaller, greater);
        return;
      }
    }
    set.add(tmp);
    // for(Interval I : set){
    //     System.out.print(I.start+" "+I.end+" ");
    // }
    // System.out.println();
  }