228、汇总区间
本题较易,想像两个指针i
和j
。类似于选择排序的思路。其中findex
指如果后一个元素不是有序的,那么i指针步进的步数。
public List<String> summaryRanges(int[] nums) {
boolean flag=false;
int findex=1;
ArrayList<String> arrayList=new ArrayList<>();
for(int i=0;i<nums.length;i+=findex){
flag=false;
findex=1;
for(int j=i+1;j<nums.length;j++){
if(nums[i]+findex!=nums[j]){
break;
}else if(nums[i]+findex==nums[j]){
findex++;
flag=true;
index++;
}
}
if(flag){
arrayList.add(nums[i]+"->"+(nums[i]+findex-1));
}else {
arrayList.add(nums[i]+"");
}
}
return arrayList;
}