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"].
说明:0,1,2是连续的序列,则输出0->2
4,5又是另外一组连续的,则输出4->5
7单独是一个序列,输出7
注意数组没有元素(不一定为空),只有1一个元素,等等的特殊情况的处理。
public static void summaryRanges(){//leetcode oj
int []nums = {1,2,3,4,6,8};
List<String> a = new ArrayList<String>();
int start=0;
int end = 0;
int temp=0;
int i=0;
while(i<nums.length){
temp=nums[i];
if(i+1 != nums.length && temp+1 != nums[i+1]){//特殊情况处理,超出数组长度
if(start == end){
a.add(""+nums[start]);
}else{
a.add(nums[start]+"->"+nums[end]);
}
start=i+1;
end= start;
temp = nums[start];
++i;
if(start == nums.length -1){//最后一个元素是起始元素直接添加
a.add(""+nums[start]);
break;
}
}else{
if(i+1 == nums.length ){//后面没有元素了,
if(start == end){
a.add(""+nums[start]);
}else{
a.add(nums[start]+"->"+nums[end]);
}
break;
}
++i;
temp = nums[i];
end = i;
}
}//while
//return a;
for(String d:a){
System.out.println(d);
}
}