LeetCode 228. 汇总区间
发布日期:2021-07-01 03:25:33 浏览次数:2 分类:技术文章

本文共 1158 字,大约阅读时间需要 3 分钟。

1. 题目

给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。

示例 1:输入: [0,1,2,4,5,7]输出: ["0->2","4->5","7"]解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。示例 2:输入: [0,2,3,4,6,8,9]输出: ["0","2->4","6","8->9"]解释: 2,3,4 可组成一个连续的区间; 8,9 可组成一个连续的区间。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/summary-ranges

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

记录前一个数prev,以及连续的数有多少个

class Solution {
public: vector
summaryRanges(vector
& nums) {
if(nums.size()==0) return {
}; int i, count = 1, prev = nums[0]; string s = to_string(nums[0]); vector
ans; for(i = 1; i < nums.size(); ++i) {
if(long(nums[i])-prev != 1)//[-2147483648,-2147483647,2147483647]int溢出 {
if(count != 1)//连续个数大于1 s += "->"+to_string(nums[i-1]);//当前断了,加上箭头和前一个数 ans.push_back(s);//加入答案 s = to_string(nums[i]);//当前数另起一个答案 count = 1;//计数为1 } else count++; prev = nums[i]; } if(count != 1) s += "->"+to_string(nums[i-1]); ans.push_back(s);//最后一个答案 return ans; }};

0 ms 7 MB

转载地址:https://michael.blog.csdn.net/article/details/106096697 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode 207. 课程表(拓扑排序)
下一篇:LeetCode 223. 矩形面积

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月17日 01时00分48秒