Beat 99%,  Consice  Java Solution
\n    public int[][] insert(int[][] intervals, int[] newInterval) {\n        List<int[]> ans = new ArrayList<>();\n        int[] toAdd = newInterval;\n        \
```\n    public int[][] insert(int[][] intervals, int[] newInterval) {\n        List<int[]> ans = new ArrayList<>();\n        int[] toAdd = newInterval;\n        \n        for (int i = 0; i < intervals.length; i ++) {\n\t\t\t/*1. No overlap and toAdd appears before current interval, add toAdd to result.*/\n            if (intervals[i][0] > toAdd[1]) {\n                ans.add(toAdd);\n                toAdd = intervals[i];\n            }\n            /*2. Has overlap, update the toAdd to the merged interval.*/\n\t\t\telse if (intervals[i][1] >= toAdd[0])  \n                toAdd = new int[] {Math.min(intervals[i][0], toAdd[0]),\n                                   Math.max(intervals[i][1], toAdd[1]) };\n\t\t\t/*3. No overlap and toAdd appears after current interval, add current interval to result.*/\n            else ans.add(intervals[i]); \n        }\n        ans.add(toAdd);\n\t\treturn ans.toArray(new int[ans.size()][2]);\n    }\n```
[]