Summary Ranges
2015-10-27 16:24
357 查看
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”].
对给定的没有重复数据且已经排序好的数组,进行分割,每部分的数据两两之间都是递增1,并记录为字符串数组的形式。
解法:
参考:http://blog.csdn.net/sunao2002002/article/details/46653021
使用两个变量保存每部分的首尾数字。
For example, given [0,1,2,4,5,7], return [“0->2”,”4->5”,”7”].
对给定的没有重复数据且已经排序好的数组,进行分割,每部分的数据两两之间都是递增1,并记录为字符串数组的形式。
解法:
参考:http://blog.csdn.net/sunao2002002/article/details/46653021
使用两个变量保存每部分的首尾数字。
vector<string> summaryRanges(vector<int>& nums) { vector<string> re; int length = nums.size(); if (length < 1){ return re; } int l, r; l = r = nums[0]; for (int k = 1; k < length; k++){ if (nums[k] == r || r + 1 == nums[k]){ r = nums[k]; } else{ re.push_back(toString(l,r)); l = r = nums[k]; } } re.push_back(toString(l, r)); return re; } string toString(int l, int r){ //string str; //if (l == r){ // str = l; //} //else{ // str = l + "->" + r; //} //return str; //注释的这段代码不知道为啥不能将整型转化为字符串。 char buffer[32]; if (l == r){ sprintf_s(buffer, "%d", l); } else{ sprintf_s(buffer, "%d->%d", l, r); } return string(buffer); }
相关文章推荐
- 031.isKind 判断指针的实际类型
- 2015年10月26日作业
- java多线程学习-java.util.concurrent详解(一) Latch/Barrier
- 如何在Mac上用Ruby封装C/C++接口
- SQL Server 存储过程解析XML传参 参考方案
- 2015沈阳赛区总结 与 简单题题解
- 关于65535方法数(不删代码,不做插件化,square的成果)
- 【程序42】 809*??=800*??+9*??+1
- 使用Vagrant安装的box镜像都放在了哪里?可以更改嘛?
- Java使用多线程发送消息
- SQL Server 存储过程解析XML传参 参考方案
- Jsonp简单认识(后端使用的是asp.net mvc)
- 反射实例
- mysql 5.6 改进一
- ViewController 的声明周期
- 关于营销自动化,30个惊人的事实
- Windows 下VC++6.0制作、使用动态库和静态库
- Sql 解析XML 解决方案参考
- Unity 音乐播放全局类
- 如何让android开机后自动运行自己的程序