关闭

Easy-题目62:228. Summary Ranges

42人阅读 评论(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,4,5,7], 返回[“0->2”,”4->5”,”7”].
题目分析:
使用两个指针p1和p2,类似于滑动窗口,固定指针p1,一直滑动p2,直到p2的后继元素不等于p2所指元素+1(即出现间断),那么列表中增加一个字符串,并令p1指向p2的下一个节点,再滑动。如果p1就是一个间断的数字,那么直接把p1对应的字符串输入到列表中。
源码:(language:java)

public class Solution {
    public List<String> summaryRanges(int[] nums) {
        int len=nums.length;
        List<String> answer=new ArrayList<String>();
        if(len==0)
            return answer;
        int start=0,end=0;
        while(start<len) {
            String range;
            while(end+1<len && nums[end+1]==nums[end]+1)
                end++;
            if(end!=start)
                range=new Integer(nums[start]).toString()+"->"+new Integer(nums[end]).toString();
            else 
                range=new Integer(nums[start]).toString();
            answer.add(range);
            end++;
            start=end;
        }
        return answer;
    }
}

成绩:
1ms,beats 3.19%,众数1ms,94.54%

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:56838次
    • 积分:3213
    • 等级:
    • 排名:第10664名
    • 原创:270篇
    • 转载:53篇
    • 译文:0篇
    • 评论:7条
    文章分类
    最新评论