You are given a **sorted unique** integer array `nums`.
A **range** `[a,b]` is the set of all integers from `a` to `b` (inclusive).
Return the **smallest sorted** list of ranges that **cover all the numbers in the array exactly**. That is, each element of `nums` is covered by exactly one of the ranges, and there is no integer `x` such that `x` is in one of the ranges but not in `nums`.
Each range `[a,b]` in the list should be output as:
- `"a->b"` if `a != b`
- `"a"` if `a == b`
Example 1
Input:nums = [0,1,2,4,5,7]
Output:["0->2","4->5","7"]
Explanation:0,1,2 form one consecutive run; 4,5 form another; 7 stands alone.
Example 2
Input:nums = [0,2,3,4,6,8,9]
Output:["0","2->4","6","8->9"]
Example 3
Input:nums = []
Output:[]
Constraints
- 0 <= nums.length <= 20
- -2^31 <= nums[i] <= 2^31 - 1
- All the values of nums are unique.
- nums is sorted in ascending order.