题目:
思路:
一次遍历数组,检查相邻差值是否大于一即可。大于一则记作区间处理。
C++代码:
class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
vector<string> ret;
int i = 0;
int n = nums.size();
while (i < n) {
int low = i;
i++;
while (i < n && nums[i] == nums[i - 1] + 1) {//当差值为1时
i++;
}
int high = i - 1;
string temp = to_string(nums[low]);
if (low < high) {//推入答案数组
temp.append("->");
temp.append(to_string(nums[high]));
}
ret.push_back(move(temp));//move函数相当于清除temp的内容
}
return ret;
}
};