码迷,mamicode.com
首页 > 其他好文 > 详细

[leedcode]Summary Ranges

时间:2015-06-29 00:16:27      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:

双指针思路,循环时,声明一个变量保存范围起始的下标

注意:如何在数组只有一个元素,还有遍历到最后一个元素的时候,去更新结果集。



public
class Solution { public List<String> summaryRanges(int[] nums) { List<String> res=new ArrayList<String>(); int start=0; for(int i=1;i<=nums.length;i++){ if(i==nums.length||nums[i]>nums[i-1]+1){ if(start==i-1){ res.add(nums[start]+""); }else{ res.add(nums[start]+"->"+nums[i-1]); } start=i; } } return res; } }
大循环遍历一遍整个数组,里面小指针过一遍一个range,总体还是一遍。O(n).


List<String> list=new ArrayList(); for(int i=0;i<nums.length;i++){ int a=nums[i]; while(i+1<nums.length&&(nums[i+1]-nums[i])==1){ i++; } if(a!=nums[i]){ list.add(a+"->"+nums[i]); }else{ list.add(a+""); } } return list;

 

[leedcode]Summary Ranges

标签:

原文地址:http://www.cnblogs.com/qiaomu/p/4606269.html

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