Python Binary Search
\nclass Solution:\n    def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]:\n        \n        l = bisect.bisect_left([x[1] 
```\nclass Solution:\n    def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]:\n        \n        l = bisect.bisect_left([x[1] for x in intervals],newInterval[0])\n        r = bisect.bisect_right([x[0] for x in intervals],newInterval[1])\n        \n        if l < len(intervals):\n            newInterval[0] = min(newInterval[0],intervals[l][0])\n            \n        if r > 0:\n            newInterval[1] = max(newInterval[1],intervals[r-1][1])\n            \n        return intervals[:l] + [ newInterval ] + intervals[r:]\n        \n```
['Binary Tree', 'Python']