[LeetCode 解题报告]228. 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.
class Solution {
public:
    vector<string> summaryRanges(vector<int>& nums) {
        if (nums.empty())
            return {};
        
        vector<string> res;
        int i = 0;
        while (i < nums.size()) {
            int j = 1;
            while(i+j < nums.size() && nums[i]+j == nums[i+j])
                j ++;
            
            if (j == 1)
                res.push_back(to_string(nums[i]));
            else
                res.push_back(to_string(nums[i]) +"->"+to_string(nums[i+j-1]));
            i += j;
        }
        return res;
    }
};
发布了467 篇原创文章 · 获赞 40 · 访问量 45万+

猜你喜欢

转载自blog.csdn.net/caicaiatnbu/article/details/104210165