Given a sorted integer array without duplicates, return the summary of its ranges.
For example, given [0,1,2,4,5,7]
, return ["0->2","4->5","7"].
解题思路:
JAVA实现如下:
public List<String> summaryRanges(int[] nums) {
List<String> list = new ArrayList<String>();
if (nums.length == 0)
return list;
int left = nums[0], index = nums[0];
for (int i = 1; i < nums.length; i++) {
if (index == nums[i] - 1)
index++;
else if (index == left) {
list.add(index + "");
left = nums[i];
index = nums[i];
} else {
list.add(left + "->" + index);
left = nums[i];
index = nums[i];
}
}
if (index == left)
list.add(index + "");
else
list.add(left + "->" + index);
return list;
}