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: vectorsummaryRanges(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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月17日 01时00分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
ffmpeg提取音频存为PCM
2019-05-02
我也学android(1)搭个环境
2019-05-02
Reverse Linked List II
2019-05-02
题目1511:从尾到头打印链表
2019-05-02
来吧,用设计模式来干掉 if-else
2019-05-02
为什么 Redis 要比 Memcached 更火?
2019-05-02
涨姿势:为啥MySQL官方不推荐使用uuid或者雪花id作为主键?
2019-05-02
一个小小的签到功能,到底用MySQL还是Redis?
2019-05-02
36岁退休!阿里 P8 六年实现“财务自由”,裸辞环游世界!
2019-05-02
QQ号终于能修改了?
2019-05-02
1.3 万亿条数据查询,如何做到毫秒级响应?
2019-05-02
高赞回答:为什么高级程序员不必担心自己的技术过时?
2019-05-02
支持 Dubbo 接口文档生成的工具
2019-05-02
SpringBoot集成WebSocket,实现后台向前端推送信息
2019-05-02
基于SpringBoot实现单点登录系统
2019-05-02
优秀程序员早就学会用“状态模式”代替if-else了
2019-05-02
使用基于 SpringMVC 的透明 RPC 开发微服务
2019-05-02
写“好”代码的十九条准则
2019-05-02
推荐几款 Redis 可视化工具
2019-05-02
送60本书!!
2019-05-02