Insert interval

  • https://leetcode.com/problems/insert-interval/

    public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
      List<Interval> result = new ArrayList();
    
      for (Interval interval : intervals) {
          if (interval.end < newInterval.start) { // new interval occur after this one
              result.add(interval);
          } else if (interval.start > newInterval.end) { // new interval occur before the current interval 
              result.add(newInterval);
              newInterval = interval;
          } else if (interval.end >= newInterval.start || interval.start <= newInterval.end) { // overlap
              newInterval = new Interval(Math.min(interval.start, newInterval.start), Math.max(newInterval.end, interval.end));
          }
      }
      result.add(newInterval);
      return result;
    }
    
      class Interval {
          int start;
          int end;
          Interval() { start = 0; end = 0; }
          Interval(int s, int e) { start = s; end = e; }
      }