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"]
Example 2:
Input: [0,2,3,4,6,8,9] Output: ["0","2->4","6","8->9"]
队列存连续的数值
class Solution {
public:
vector<string> summaryRanges(vector<int>& nums)
{
vector<string> ret;
if (nums.empty()) return ret;
deque<int> que;
for (auto it : nums)
{
if (que.empty() || que.back() + 1 == it)
{
que.push_back(it);
}
else
{
helper(que, ret);
que.push_back(it);
}
}
helper(que, ret);
return ret;
}
private:
void helper(deque<int>& que, vector<string>& ret)
{
if (que.empty()) return;
else if (que.size() == 1)
ret.push_back(to_string(que.back()));
else
ret.push_back( to_string(que.front()) + "->" + to_string(que.back()));
que.clear();
}
};