228.Summary-Ranges

228. Summary Ranges

题目地址

https://leetcode.com/problems/summary-ranges/

题目描述

Given a sorted integer array without duplicates, return the summary of its ranges.

Example 1:
Input:  [0,1,2,4,5,7]
Output: ["0->2","4->5","7"]
Explanation: 0,1,2 form a continuous range; 4,5 form a continuous range.

Example 2:
Input:  [0,2,3,4,6,8,9]
Output: ["0","2->4","6","8->9"]
Explanation: 2,3,4 form a continuous range; 8,9 form a continuous range.

代码

Approach #1

class Solution {
    public List<String> summaryRanges(int[] nums) {
        List<String> summary = new ArrayList<>();
          int start = 0;
        for (int j = 0; j < nums.length; ++j){
            start = j;
            // try to extend the range [nums[i], nums[j]]
            while (j + 1 < nums.length && nums[j + 1] == nums[j] + 1)
                ++j;
            // put the range into the list
            if (start == j)
                summary.add(nums[start] + "");
            else
                summary.add(nums[start] + "->" + nums[j]);
        }
        return summary;
    }
}

Last updated