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);
}
}