自学内容网 自学内容网

力扣-数组-228 汇总区间

解析

根据题目和参考样例可以看出,最小区间的方法就是保证左右区间内的元素递增值为1,如果不为1,就单独放在一个区间里

代码

class Solution {
public:
    vector<string> summaryRanges(vector<int>& nums) {
        vector<string> res;
        for (int i = 0; i < nums.size(); ) {
            for (int j = i; j < nums.size(); j++) {
                long long jj = nums[j];
                long long ii = nums[i];
                if (jj - ii > j - i) {
                    ostringstream oss;
                    if (i == j - 1) {
                        oss << nums[i];
                    } else {
                        oss << nums[i] << "->" << nums[j - 1];
                    }
                    res.push_back(oss.str());
                    i = j;
                }
                if (j == nums.size() - 1) {
                    ostringstream oss;
                    if (i == j) {
                        oss << nums[i];
                    } else {
                        oss << nums[i] << "->" << nums[j];
                    }
                    res.push_back(oss.str());
                    i = nums.size();
                }
            }
        }

        return res;
    }
};


原文地址:https://blog.csdn.net/qq_45964225/article/details/145186013

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!