**Problem Statement:**
Given an array of `intervals` where `intervals[i] = [starti, endi]`, merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input.
**Hint / Expected Approach:**
Sort by start, merge overlapping
**Edge Cases to Consider:**
- (1) No overlapping intervals
- (2) All intervals overlap into one
- (3) Single interval