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"].
public class Solution {
public List<String> summaryRanges(int[] nums) {
List<String> result = new ArrayList<>();
if(nums == null || nums.length == 0) {
return result;
}
int start = 0;
int end = 1;
int pre = nums[0];
while(end < nums.length) {
if(nums[end] == pre + 1) {
pre = nums[end];
end++;
}
else {
String range = genereateRange(nums, start, end);
result.add(range);
start = end;
end = start + 1;
pre = nums[start];
}
}
String range = genereateRange(nums, start, end);
result.add(range);
return result;
}
private String genereateRange(int[] nums, int start, int end) {
if(start == end - 1) {
return Integer.toString(nums[start]);
}
else {
return nums[start] + "->" + nums[end - 1];
}
}
}