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

LeetCode——Summary Ranges

时间:2015-06-27 01:15:17      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:

Description:

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"].

确定有序数组的区间

需要注意各种边界细节,每次确定区间之后需要清空。

public class Solution {
    public List<String> summaryRanges(int[] nums) {
        List<String> list = new ArrayList<String>();
        if(nums.length == 0)
            return list;
        if(nums.length == 1) {
            list.add(nums[0]+"");
            return list;   
        }
        boolean flag = false;
        StringBuilder ele = new StringBuilder();
        for(int i=0; i<nums.length; i++) {
            int start = 0, end = 0;
            
            if(!flag) {
                start = nums[i];
                flag = true;
                ele.append(start+"");
            }
            
            if(i<nums.length-1 && nums[i] != nums[i+1]-1) {
                end = nums[i];
                flag = false;
                if(nums[i] != start) {
                    ele.append("->" + end);
                }
            }
            
            if(ele != null) {
                if(i == nums.length-2 && nums[i] == nums[i+1]-1) {
                    end = nums[i+1];
                    ele.append("->" + end);
                    list.add(ele.toString());
                    ele.delete(0, ele.length());
                    break;
                }
                if(!flag || flag&&i==nums.length-1) {
                    list.add(ele.toString());
                    ele.delete(0, ele.length());
                }
            }
        }
        return list;
    }
}

 

LeetCode——Summary Ranges

标签:

原文地址:http://www.cnblogs.com/wxisme/p/4603480.html

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