sweet1cris

Untitled

Jan 9th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.80 KB | None | 0 0
  1. public class Solution {
  2.     public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
  3.         if (newInterval == null || intervals == null) {
  4.             return intervals;
  5.         }
  6.  
  7.         List<Interval> results = new ArrayList<Interval>();
  8.         int insertPos = 0;
  9.  
  10.         for (Interval interval : intervals) {
  11.             if (interval.end < newInterval.start) {
  12.                 results.add(interval);
  13.                 insertPos++;
  14.             } else if (interval.start > newInterval.end) {
  15.                 results.add(interval);
  16.             } else {
  17.                 newInterval.start = Math.min(interval.start, newInterval.start);
  18.                 newInterval.end = Math.max(interval.end, newInterval.end);
  19.             }
  20.         }
  21.  
  22.         results.add(insertPos, newInterval);
  23.  
  24.         return results;
  25.     }
  26. }
  27.  
  28. // version: 高频题班
  29. class Solution {
  30.     /**
  31.      * Insert newInterval into intervals.
  32.      *
  33.      * @param intervals:   Sorted interval list.
  34.      * @param newInterval: A new interval.
  35.      * @return: A new sorted interval list.
  36.      */
  37.     public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
  38.         // write your code here
  39.         List<Interval> ans = new ArrayList<>();
  40.        
  41.         int idx = 0;
  42.         while (idx < intervals.size() && intervals.get(idx).start < newInterval.start) {
  43.             idx++;
  44.         }
  45.         intervals.add(idx, newInterval);
  46.  
  47.         Interval last = null;
  48.         for (Interval item : intervals) {
  49.             if (last == null || last.end < item.start) {
  50.                 ans.add(item);
  51.                 last = item;
  52.             } else {
  53.                 last.end = Math.max(last.end, item.end); // Modify the element already in list
  54.             }
  55.         }
  56.         return ans;
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment