码迷,mamicode.com
首页 > 编程语言 > 详细

输出有序数组的连续序列范围

时间:2015-08-21 23:22:20      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:输出有序数组的连续序列范围

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


版权声明:本文为博主原创文章,转载请注明出处:http://blog.csdn.net/lingzhm

输出有序数组的连续序列范围

标签:输出有序数组的连续序列范围

原文地址:http://blog.csdn.net/lingzhm/article/details/47844187

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!