給定一個無重復的已排序整型數組,返回其中范圍的集合。
例如 ,給定[0,1,2,4,5,7],返回["0->2","4-5","7"]。
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的長度,小於1的話直接未添加任何元素的vector了。
否則從索引0開始一直遍歷所有nums元素。對其進行相應的判斷,如果下一個元素和當前元素是緊鄰的就直接遞增索引而不做其他操作。
代碼中還是用了to_string函數來從整型構造字符串。
class Solution {
public:
vector summaryRanges(vector& nums) {
vector v;
if (nums.size() < 1) return v;
int index = 0, pos = 0;
while (index < nums.size()) {
if (index + 1 < nums.size() && nums[index + 1] == nums[index] + 1)
index++;
else {
if (pos == index) {
v.push_back(to_string(nums[index]));
}
else {
v.push_back(to_string(nums[pos]) + "->" + to_string(nums[index]));
}
index++;
pos = index;
}
}
return v;
}
};