Problem
给定一个按升序排列的整数数组 nums,其中没有重复元素。
请把数组中连续的整数整理成区间,返回能够恰好覆盖所有元素的最少区间列表。返回的区间也要按从小到大的顺序排列。
每个数组元素必须恰好属于一个区间,并且区间中不能包含原数组里没有的整数。
每个区间按以下格式表示为字符串:
- 如果起点
a和终点b不同,写成"a->b" - 如果区间只有一个整数,写成
"a"
例如:
nums = [0, 1, 2, 4, 5, 7]
其中 0, 1, 2 是一段连续整数,4, 5 是另一段,7 单独构成一个区间。因此返回:
["0->2", "4->5", "7"]
注意:不能把它们全部写成 "0->7",因为这个区间还包含数组中没有的 3 和 6。
Examples
示例 1
Input: nums = [0, 1, 2, 4, 5, 7]
Output: ["0->2", "4->5", "7"]
解释:数组分为三段连续整数,分别是 [0, 1, 2]、[4, 5] 和 [7]。
示例 2
Input: nums = [0, 2, 3, 4, 6, 8, 9]
Output: ["0", "2->4", "6", "8->9"]
解释:0 和 6 各自单独构成区间,2, 3, 4 和 8, 9 分别构成连续区间。
示例 3
Input: nums = []
Output: []
解释:空数组没有需要覆盖的元素,因此返回空列表。
Constraints
-
nums.length -
nums[i] nums中的所有元素互不相同nums按升序排列