LeetCode简单题之汇总区间
题目
给定一个 无重复元素 的 有序 整数数组 nums 。
返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。
列表中的每个区间范围 [a,b] 应该按如下格式输出:
“a->b” ,如果 a != b
“a” ,如果 a == b
示例 1:
输入:nums = [0,1,2,4,5,7]
输出:[“0->2”,“4->5”,“7”]
解释:区间范围是:
[0,2] --> “0->2”
[4,5] --> “4->5”
[7,7] --> “7”
示例 2:
输入:nums = [0,2,3,4,6,8,9]
输出:[“0”,“2->4”,“6”,“8->9”]
解释:区间范围是:
[0,0] --> “0”
[2,4] --> “2->4”
[6,6] --> “6”
[8,9] --> “8->9”
提示:
0 <= nums.length <= 20
-2^31 <= nums[i] <= 2 ^31 - 1
nums 中的所有值都 互不相同
nums 按升序排列
来源:力扣(LeetCode)
解题思路
这个题可以设置两个指针一前一后遍历整个数组,数组中一个区间的紧挨着的数字应当是相差1的,如果相差不为1则发生断层,这时就可以直接汇总为一个区间。另外需要注意一个细节,就是关于最后一个区间的汇总,这是由于while循环的机制所导致。
class Solution:def summaryRanges(self, nums: List[int]) -> List[str]:n=len(nums) if n==0: #处理特殊情况return []elif n<2:return [str(nums[0])]temp=[]i=0j=1while j<n:if nums[j]-nums[j-1]==1:j+=1else:if nums[i]==nums[j-1]:temp.append(str(nums[i]))else:temp.append(str(nums[i])+'->'+str(nums[j-1]))i=jj+=1if nums[i]==nums[j-1]: #处理最后一个区间temp.append(str(nums[i]))else:temp.append(str(nums[i])+'->'+str(nums[j-1]))return temp
LeetCode简单题之汇总区间相关推荐
- LeetCode简单题之在区间范围内统计奇数数目
题目 给你两个非负整数 low 和 high .请你返回 low 和 high 之间(包括二者)奇数的数目. 示例 1: 输入:low = 3, high = 7 输出:3 解释:3 到 7 之间奇数 ...
- LeetCode刷题笔记汇总
LeetCode刷题笔记汇总 第一次刷LeetCode写的一些笔记. 1.两数之和 3.无重复字符的最长子串 15.三数之和 18.四数之和 19.删除链表的倒数第 N 个结点 20.有效的括号 21 ...
- leetcode热题HOT100汇总——java题解已完结撒花
文章目录 前言 1. 两数之和 2. 两数相加 3.无重复字符的最长子串 4. 寻找两个正序数组的中位数 5. 最长回文子串 10. 正则表达式匹配 11. 盛最多水的容器 15. 三数之和 17. ...
- 【LeetCode刷题】重叠区间问题
跟着甜姨整理了这一类问题,没有固定套路,但需要找规律以及细心. 重叠区间 252,会议室,easy 题解 实质是判断有没有重叠区间,将区间按照会议开始时间排序,然后遍历一遍即可. 代码 class S ...
- LeetCode简单题之基于排列构建数组
题目 给你一个 从 0 开始的排列 nums(下标也从 0 开始).请你构建一个 同样长度 的数组 ans ,其中,对于每个 i(0 <= i < nums.length),都满足 ans ...
- LeetCode简单题之Excel 表中某个范围内的单元格
题目 Excel 表中的一个单元格 (r, c) 会以字符串 "" 的形式进行表示,其中: 即单元格的列号 c .用英文字母表中的 字母 标识. 例如,第 1 列用 'A' 表示, ...
- LeetCode简单题之增量元素之间的最大差值
题目 给你一个下标从 0 开始的整数数组 nums ,该数组的大小为 n ,请你计算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 ...
- LeetCode简单题之二进制矩阵中的特殊位置
题目 给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置的数目 . 特殊位置 定义:如果 mat[i][j] == 1 ...
- LeetCode简单题之设计 Goal 解析器
题目 请你设计一个可以解释字符串 command 的 Goal 解析器 .command 由 "G"."()" 和/或 "(al)" 按某种 ...
最新文章
- The key of C# 学习笔记I-II
- CV01-语义分割笔记和两个模型VGG ResNet的笔记
- 300 Longest Increasing Subsequence
- Android之webView入门
- JavaScript --- 取得鼠标事件的坐标
- 做公益的飞秋(FeiQ)程序代码
- 1.几大开发模型区别与联系
- Windows8-ConsumerPreview 虚拟机安装与体验
- 今天的阿里云,不应该只是这张图
- cmd静默运行_exe、msi、dos、bat等静默运行,后台运行,不弹窗的解决办法
- android平台数字看板,数据看板
- 用记忆法记忆单词的M种方法 吴天胜
- Deployer-6-部署流-Flow
- flask-restful 和 blueprint
- 建立图书馆书目索引表
- 河北北方学院专接本计算机,接本院校介绍——河北北方学院
- 实现邮箱验证码发送代码(直接cv,3分钟解决)
- 买股票总是跌多涨少?买啥啥跌?试试“选股助手”吧
- 数字孪生应用白皮书_赛迪数字孪生白皮书(2019)
- 交通杀马特︱道路瘦身全纪录:用金钱和生命来衡量降速交通的好处
热门文章
- 人工智能3d建模算法_打破国外垄断,全国产3D芯片为机器人“点睛”
- 2022-2028年中国丁二烯橡胶行业市场规模研究及前瞻分析报告
- 使用vscode连接服务器写代码指南
- [转载]Tensorflow 的reduce_sum()函数的axis,keep_dim这些参数到底是什么意思?
- SpringSecurity安全验证中文乱码问题
- 关于TVM的点滴记录
- AI人工智能天机芯芯片
- 如何写新的C++ OP
- MindSpore基准性能
- 多核处理器集成了神经处理单元