# 题目

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”].

# AC代码

class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
if (nums.empty())
return vector<string>();

int sz = nums.size();

vector<string> ret;
int start = nums[0], end = nums[0];
for (int i = 1; i < sz; ++i)
{
if (nums[i] == end + 1)
end = nums[i];
else{
string tmp;
if (end == start)
tmp = IntToString(start);
else
tmp = IntToString(start) + "->" + IntToString(end);

ret.push_back(tmp);

start = nums[i];
end = nums[i];
}
}//for

//加上最后一组
string tmp;
if (end == start)
tmp = IntToString(start);
else
tmp = IntToString(start) + "->" + IntToString(end);
ret.push_back(tmp);

return ret;
}

string IntToString(long num)
{
if (num == 0)
return "0";
else if (num == INT_MIN)
return "-2147483648";
string str;
bool flag = num < 0 ? false : true;

num = abs(num);
while (num)
{
char c = num % 10 + '0';
num /= 10;
str += c;
}//while
reverse(str.begin(), str.end());

if (flag)
return str;
else
return "-" + str;
}
};

GitHub测试程序源码

#### leetcode 228: Summary Ranges

2015-06-26 06:22:18

#### LeetCode - 228. Summary Ranges - 思路详解- C++

2017-01-13 20:50:21

#### Leetcode_228_Summary Ranges

2015-07-05 11:07:31

#### Leetcode 228 Summary Ranges

2015-06-26 13:34:50

#### [LeetCode][228] Summary Ranges

2017-01-23 10:50:19

#### LeetCode 228:Summary Ranges

2015-12-24 08:34:15

#### [Leetcode]#228 Summary Ranges

2015-09-02 08:06:48

#### [LeetCode 228] Summary Ranges

2015-09-24 04:07:18

#### LeetCode 228 Summary Ranges

2015-12-11 09:59:27

#### LeetCode[228] Summary Ranges

2016-09-25 13:13:58