[LeetCode] 228. Summary Ranges 总结区间
Given a sorted integer array without duplicates, return the summary of its ranges.
Example 1:
Input: [0,1,2,4,5,7]
Output: ["0->2","4->5","7"]
Explanation: 0,1,2 form a continuous range; 4,5 form a continuous range.
Example 2:
Input: [0,2,3,4,6,8,9]
Output: ["0","2->4","6","8->9"]
Explanation: 2,3,4 form a continuous range; 8,9 form a continuous range.
Java:
class Solution {
    public List<String> summaryRanges(int[] nums) {
        List<String> list=new ArrayList();
        if(nums.length==1){
            list.add(nums[0]+"");
            return list;
        }
        for(int i=0;i<nums.length;i++){
            int a=nums[i];
            while(i+1<nums.length&&(nums[i+1]-nums[i])==1){
                i++;
            }
            if(a!=nums[i]){
                list.add(a+"->"+nums[i]);
            }else{
                list.add(a+"");
            }
        }
        return list;
    }
}  
Python:
class Solution:
# @param {integer[]} nums
# @return {string[]}
def summaryRanges(self, nums):
ranges = []
if not nums:
return ranges start, end = nums[0], nums[0]
for i in xrange(1, len(nums) + 1):
if i < len(nums) and nums[i] == end + 1:
end = nums[i]
else:
interval = str(start)
if start != end:
interval += "->" + str(end)
ranges.append(interval)
if i < len(nums):
start = end = nums[i] return ranges
Python:
class Solution(object):
def summaryRanges(self, nums):
"""
:type nums: List[int]
:rtype: List[str]
""" ranges = []
for n in nums:
if not ranges or n > ranges[-1][-1] + 1:
ranges += [],
ranges[-1][1:] = n, return ['->'.join(map(str, r)) for r in ranges]
Python:
class Solution(object):
def summaryRanges(self, nums):
"""
:type nums: List[int]
:rtype: List[str]
"""
ranges, r = [], []
for n in nums:
if n-1 not in r:
r = []
ranges += r,
r[1:] = n,
print r, ranges
return ['->'.join(map(str, r)) for r in ranges]
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;
    }
};
C++:
class Solution {
public:
    vector<string> summaryRanges(vector<int>& nums) {
        const int size_n = nums.size();
        vector<string> res;
        if ( 0 == size_n) return res;
        for (int i = 0; i < size_n;) {
            int start = i, end = i;
            while (end + 1 < size_n && nums[end+1] == nums[end] + 1) end++;
            if (end > start) res.push_back(to_string(nums[start]) + "->" + to_string(nums[end]));
            else res.push_back(to_string(nums[start]));
            i = end+1;
        }
        return res;
    }
};
类似题目:
[LeetCode] 163. Missing Ranges 缺失区间
All LeetCode Questions List 题目汇总
[LeetCode] 228. Summary Ranges 总结区间的更多相关文章
- LeetCode 228. Summary Ranges (总结区间)
		Given a sorted integer array without duplicates, return the summary of its ranges. Example 1: Input: ... 
- [leetcode]228. Summary Ranges区间统计
		Given a sorted integer array without duplicates, return the summary of its ranges. Example 1: Input: ... 
- C#解leetcode   228. Summary Ranges  Easy
		Given a sorted integer array without duplicates, return the summary of its ranges. For example, give ... 
- Java for LeetCode 228 Summary Ranges
		Given a sorted integer array without duplicates, return the summary of its ranges. For example, give ... 
- LeetCode(228) Summary Ranges
		Given a sorted integer array without duplicates, return the summary of its ranges. For example, give ... 
- (easy)LeetCode  228.Summary Ranges
		Given a sorted integer array without duplicates, return the summary of its ranges. For example, give ... 
- Java [Leetcode 228]Summary Ranges
		题目描述: Given a sorted integer array without duplicates, return the summary of its ranges. For example ... 
- 228 Summary Ranges 汇总区间
		给定一个无重复元素的有序整数数组,返回数组中区间范围的汇总. 示例 1: 输入: [0,1,2,4,5,7]输出: ["0->2","4->5",& ... 
- [LeetCode] 163. Missing Ranges 缺失区间
		Given a sorted integer array nums, where the range of elements are in the inclusive range [lower, up ... 
随机推荐
- 前端安全问题之CSRF和XSS
			一.CSRF 1.什么是 CSRF CSRF(全称 Cross-site request forgery),即跨站请求伪造 2.攻击原理 用户登录A网站,并生成 Cookie,在不登出的情况下访问危险 ... 
- Electrification Plan 最小生成树(prim+krusl+堆优化prim)
			题目 题意: 无向图,给n个城市,n*n条边,每条边都有一个权值 代表修路的代价,其中有k个点有发电站,给出这k个点的编号,要每一个城市都连到发电站,问最小的修路代价. 思路: prim:把发电站之间 ... 
- CodeForces - 115E:Linear Kingdom Races (DP+线段树+lazy)
			pro: 从左到有有N个车道,都有一定程度损坏,所以有不同的修理费a[]: 有M场比赛,每场比赛的场地是[Li,Ri],即如果这个区间的车道都被修理好,则可以举办这个比赛,并且收益是Pi.问最多得到多 ... 
- NPM——npm|cnpm如何升级
			前言 手动更新了node.js版本后,想要升级下npm的版本 步骤 其实无论npm还是cnpm升级的命令都是一样的,除了需要指定包名. 升级npm $ npm install -g npm 查看npm ... 
- HTML页面  js返回上一页
			<input type="button" name="Submit" onclick="javascript:history.back(-1); ... 
- MyBatis框架的基本要素-核心接口和类的作用范围
			通过上面运行案例-查询用户表中的记录数. 非集成环境下的最佳作用域范围: SqlSessionFactoryBuilder 用过即丢,推荐作用域在方法体内. SqlSessionFactory 最佳作 ... 
- springboot使用jdbcTemplate案例
			1 创建实体类 public class Student { private Integer stuid; private String stuname; public Integer getStui ... 
- WinDbg的工作空间---Work Space
			一.什么是工作空间 Windbg把和调试相关的所有配置称为workspace.WinDbg使用工作空间来描述和存储调试项目的属性.参数及调试器设置等信息.工作空间与vc中的项目文件很相似.退出wind ... 
- 70: libreoj #2424 区间dp
			$des$ $sol$ $f_{i, j, k} => a => [1, i], b => [1, j], a_i = b_j | a_i != b_j , a_i => 0 ... 
- pycharm+gitee【代码上传下载】实战(windows详细版)
			pycharm+gitee环境搭建好以后应该如何进行代码上传下载操作呢?举几个例子,此文会一直更新 环境:2019社区版pycharm+gitee+git 系统:windows系统 一.代码上传功能 ... 
