class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
vector<string> vs;
int m=0;
int vm=0;
for(int i=0;i<nums.size();i++)
{
int t=nums[i];
if(i<nums.size()-1&&t!=nums[i+1]-1&&m==0)
{
string sn=to_string(nums[i]);
vs.push_back(sn);
vm=i+1;
}
else if(i<nums.size()-1&&t!=nums[i+1]-1&&m==1)
{
string sl= to_string(nums[vm]);
string sr=to_string(nums[i]);
string ts=sl+"->"+sr;
vs.push_back(ts);
m=0;
vm=i+1;
}
else if(m==0&&i==nums.size()-1)
{
string sn=to_string(nums[i]);
vs.push_back(sn);
}
else if(m==1&&i==nums.size()-1)
{
string sl= to_string(nums[vm]);
string sr=to_string(nums[i]);
string ts=sl+"->"+sr;
vs.push_back(ts);
}
else
{
m=1;
}
}
return vs;
}
};
二十分左右吧。
老暴力人了。
复习了一下to_string()函数;
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) {
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));
}
return ret;
}
};
还是答案漂亮。
加油!
|