您的位置:首页 > 其它

[leedcode]Summary Ranges

2015-06-28 22:46 183 查看
双指针思路,循环时,声明一个变量保存范围起始的下标

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

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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: