@TOCleetcode-228
#对力扣第228题的个人见解
本人c++学习新手,现在正在刷力扣上的题目,我想把我的做题思路分享出来,一来是为了便于复习,二来是想各位大佬能给我提出意见,指出不足,本人虚心接受。
题目描述
题目要求在一个有序的数组中,分割出连续的区域,再把连续的区域放入一个字符串数组中
题目思路解析
首先遍历数组,看本次循环中的 元素与下一个元素是否相差为1,相差为1说明两个元素连续。记录本元素的下标和连续元素的个数,就可以表示出连续区间的首尾元素。使用to_string将int类型的元素转化为string类型的元素,使用+连接字符串内容。
代码
c++代码
class Solution
{
public:
vector<string> summaryRanges(vector<int>& nums)
{
int len = (signed)nums.size();
vector<string> success_str;
int succession = 0;
int index = 0;
for (int i = 0; i < len; i++)
{
if (nums[i+1] == nums[i] + 1 && (i+1) < len)
{
succession++;
}
else
{
if (succession == 0)
{
success_str.push_back(to_string(nums[index]));
}
else
{
success_str.push_back(to_string(nums[index])+"->"+to_string(nums[index+succession]));
}
index = i + 1;
succession = 0;
}
}
return success_str;
}
};