描述
给定一个 无重复元素 的 有序 整数数组 nums 。
返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。
列表中的每个区间范围 [a,b] 应该按如下格式输出:
“a->b” ,如果 a != b
“a” ,如果 a == b
分析
判断连续区间,拿到连续区间的两头,记录在结果集合中
class Solution {
public List<String> summaryRanges(int[] nums) {
List<String> ans = new ArrayList<>();
for(int i = 0; i < nums.length; i++){
int start = i;
while(i+1 < nums.length && nums[i+1] == nums[i] + 1){
i++;
}
if(nums[start] == nums[i]){
ans.add(""+nums[i]);
}else{
ans.add(nums[start]+"->"+nums[i]);
}
}
return ans;
}
}