228. Summary Ranges

    /*
     * 228. Summary Ranges
     * 12.7 by Mingyang
     * 这个题目虽然看似简单,其实不然,这里的i必须得取到最后一位的后面一位
     * 这样的话我们才可以判断最后只剩的那一位如何归属
     * 不然最后一位始终是一个问题
     */
    public static List<String> summaryRanges(int[] nums) {
        List<String> result = new ArrayList<String>();
        if (nums == null || nums.length == 0) {
            return result;
        }
        int pre = nums[0];
        int range = 0;
        for (int i = 1; i <= nums.length; i++) {
            if (i != nums.length && nums[i - 1] == nums[i] - 1) {
                range++;
            } else {
                if (range == 0) {
                    result.add(Integer.toString(pre));
                } else {
                    result.add(Integer.toString(pre) + "->" + Integer.toString(pre + range));
                }
                if (i != nums.length) {
                    pre = nums[i];
                    range = 0;
                }
            }
        }
        return result;
    }
原文地址:https://www.cnblogs.com/zmyvszk/p/5583425.html