力扣228. 汇总区间
发布时间:2023年12月20日
双指针法
- 思路:
- left 指针为每次统计完区间的起始点;
- right 指针统计区间,当前值等于前一个元素加1则移动指针;
- 统计出区间之后记录到vector中;
class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
std::vector<std::string> result;
int size = nums.size();
for (int i = 0; i < size;) {
int left = i;
i++;
while (i < size && (nums[i] == nums[i -1] + 1)) {
i++;
}
int right = i - 1;
std::string tmp = std::to_string(nums[left]);
if (left < right) {
tmp.append("->");
tmp.append(std::to_string(nums[right]));
}
result.push_back(std::move(tmp));
}
return result;
}
};
文章来源:https://blog.csdn.net/N_BenBird/article/details/135097396
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!