https://medium.com/@slicesharpy/leetcode-56-understanding-merge-intervals-from-brute-force-to-optimal-solution-7a09ddee55d9