Nicksxs's Blog

What hurts more, the pain of hard work or the pain of regret?

0%

# summary-ranges-228

发表于 2016-10-12 更新于 2020-01-12 分类于 leetcode 阅读次数： 阅读次数： Disqus：

#### problem

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

#### 题解

每一个区间的起点`nums[i]`加上`j`是否等于`nums[i+j]`
参考

#### Code

    class Solution {
    public:
        vector<string> summaryRanges(vector<int>& nums) {
            int i = 0, j = 1, n;
            vector<string> res;
            n = nums.size();
            while(i < n){
                j = 1;
                while(j < n && nums[i+j] - nums[i] == j) j++;
                res.push_back(j <= 1 ? to_string(nums[i]) : to_string(nums[i]) + "->" + to_string(nums[i + j - 1]));
                i += j;
            }
            return res;
        }
    };