力扣-数组-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;
}
};