输出有序数组的连续序列范围
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); } }