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

示例 1:

输入: [0,1,2,4,5,7]
输出: ["0->2","4->5","7"]
示例 2:

输入: [0,2,3,4,6,8,9]
输出: ["0","2->4","6","8->9"]

详见:https://leetcode.com/problems/summary-ranges/description/

Java实现:

class Solution {
public List<String> summaryRanges(int[] nums) {
List<String> res=new ArrayList<String>();
int n=nums.length;
int i=0;
while(i<n){
int j=1;
while(i+j<n&&nums[i+j]-nums[i]==j){
++j;
}
res.add(j==1?String.valueOf(nums[i]):String.valueOf(nums[i])+"->"+String.valueOf(nums[i+j-1]));
i+=j;
}
return res;
}
}

C++实现:

class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
vector<string> res;
int i=0,n=nums.size();
while(i<n)
{
int j=1;
while(i+j<n&&nums[i+j]-nums[i]==j)
{
++j;
}
res.push_back(j==1?to_string(nums[i]):to_string(nums[i])+"->"+to_string(nums[i+j-1]));
i+=j;
}
return res;
}
};

参考:https://www.cnblogs.com/grandyang/p/4603555.html

最新文章

  1. ftp org.apache.commons.net.ftp.FTPClient 判断文件是否存在
  2. 中文字体font-family常用列表
  3. python 2.7 和3.0input区别
  4. ssl 握手过程【收藏】
  5. POJ2823 Sliding Window (单调队列)
  6. 小白日记37:kali渗透测试之Web渗透-手动漏洞挖掘(三)-目录遍历、文件包含
  7. Dalvik虚拟机的启动过程分析
  8. mac安装GNU命令行工具
  9. 二分法经典习题——HDU1969
  10. Docker实战--部署简单nodejs应用
  11. 第三届山西省赛1004 一道大水题(scanf)
  12. MongoDB MapReduce 小例子
  13. Centos6.5安装mysql 5.7
  14. Educational Codeforces Round 53 Editorial
  15. dubbo直连代码示例
  16. 字典树(前缀树)-Java实现
  17. BZOJ 1528 [POI2005]sam-Toy Cars(优先队列)
  18. win8 学习笔记二 输出日志
  19. Linux-- 查看文件 more与其它
  20. 【转】LoadRunner常见问题整理

热门文章

  1. 【转】LoadRunner监控 -- Linux的17个指标
  2. 从Script到Code Blocks、Code Behind到MVC、MVP、MVVM(转载)
  3. Android调用本地WebService
  4. Windows7 配置匿名Samba文件共享
  5. 关于mysqld_safe
  6. python compileall 打包发布
  7. appium学习【一】:pycharm运行不生成HtmlTestRunner测试报告
  8. 二、Log4j基本使用方法
  9. 使用Asp.net Identity 创建用户 、登录代码
  10. HDU 3944 DP? (Lucas定理)