Given a sorted integer array where the range of elements are [0, 99] inclusive, return its missing ranges.
For example, given [0, 1, 3, 50, 75], return [“2”, “4->49”, “51->74”, “76->99”]

这道题让我们求缺失区间,跟之前那道Summary Ranges很类似,这道题让我们求缺失的空间,给了一个空间的范围[lower upper],缺失的空间的范围需要在给定的空间范围内。我们首先将lower赋给l,然后开始遍历nums数组,如果i小于nums长度且当前数字小于等于upper,我们让r等于当前数字,否则如果当i等于nums的长度时或者当前数字大于upper时,将r赋为upper+1。然后判断l和r的值,若相同,l自增1,否则当r大于l时,说明缺失空间存在,我们看l和r是否差1,如果是,说明只缺失了一个数字,若不是,则说明缺失了一个区间,我们分别加上数字或者区间即可,参见代码如下:

class Solution {
public:vector<string> findMissingRanges(vector<int>& nums, int lower, int upper) {vector<string> res;int l = lower;for (int i = 0; i <= nums.size(); ++i) {int r = (i < nums.size() && nums[i] <= upper) ? nums[i] : upper + 1;if (l == r) ++l;else if (r > l) {res.push_back(r - l == 1 ? to_string(l) : to_string(l) + "->" + to_string(r - 1));l = r + 1;}}return res;}
};

类似题目:

Summary Ranges

参考资料:

https://leetcode.com/discuss/29206/my-concise-java-accepted-solution

LeetCode All in One 题目讲解汇总(持续更新中...)

[LeetCode] Missing Ranges 缺失区间相关推荐

  1. leetcode - Missing Ranges

    称号: Missing Ranges Given a sorted integer array where the range of elements are [0, 99]inclusive, re ...

  2. 【LeetCode】163.Missing Ranges(Medium)(带锁题)解题报告

    [LeetCode]163.Missing Ranges(Medium)(带锁题)解题报告 题目地址:https://leetcode.com/problems/missing-ranges/(带锁题 ...

  3. LeetCode实战:缺失的第一个正数

    题目英文 Given an unsorted integer array, find the smallest missing positive integer. Example 1: Input: ...

  4. LeetCode 436. 寻找右区间(二分查找)

    1. 题目 给定一组区间,对于每一个区间 i,检查是否存在一个区间 j,它的起始点大于或等于区间 i 的终点,这可以称为 j 在 i 的"右侧". 对于任何区间,你需要存储的满足条 ...

  5. LeetCode 435. 无重叠区间(贪心/动态规划)

    文章目录 1. 题目 2. 解题 2.1 贪心 2.2 动态规划 1. 题目 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠. 注意: 可以认为区间的终点总是大于它的起点. 区间 ...

  6. 228 Summary Ranges 汇总区间

    给定一个无重复元素的有序整数数组,返回数组中区间范围的汇总. 示例 1: 输入: [0,1,2,4,5,7] 输出: ["0->2","4->5", ...

  7. 20190901:(leetcode习题)缺失数字

    缺失数字 题目 大致思路 代码实现 题目 大致思路 第一,将所有的数组加起来,再把0-(length-1)的数字和求出来,两个差值即为目标值. 第二:根据一个数 连续 ^ 同一个数 两次 得到的还是这 ...

  8. 268. Missing Number(缺失数字)

    题目地址:https://leetcode.com/problems/missing-number/description/ Given an array containing n distinct ...

  9. Leetcode刷题986. 区间列表的交集

    给定两个由一些 闭区间 组成的列表,每个区间列表都是成对不相交的,并且已经排序. 返回这两个区间列表的交集. (形式上,闭区间 [a, b](其中 a <= b)表示实数 x 的集合,而 a & ...

最新文章

  1. linux发送email错误 501 Syntax: HELO hostname
  2. Linux 文件查找命令
  3. 教你50招提升ASP.NET性能(十五):解决性能问题时不要低估UI的价值
  4. [剑指offer]面试题第[59-1]题[Leetcode][第239题][JAVA][滑动窗口的最大值][单调队列][优先队列]
  5. sql实现从两个表获取字段组成表数据再插入到函数表中
  6. linux+广播程序,Linux系统下广播程序制作介绍(上) (3)
  7. xml2 交叉编译移植
  8. 从世界杯看德国,再看国内
  9. Custom Basic Authentication for IIS
  10. 中英文对照 —— 医学与医院
  11. linux cadence快捷键,如何设置Cadence 16.6中PCB Editor的快捷键
  12. OVM 免费虚拟化软件迭代时间调整,提高产品稳定性!
  13. 【Android TV 开发】安卓电视调试 ( 开启网络远程调试 )
  14. 简易版 水下超声波通信
  15. 高次同余式的解数和解法
  16. 跃迁-功利心的学习方法,学的更好,学的更少
  17. 开源蜜罐T-pot 19.03安装和使用
  18. formData上传文件(传参附带其他参数)
  19. STM32F103驱动IIC OLED显示屏
  20. 游戏服务器之存档读档

热门文章

  1. 室内布线电缆未来的发展趋势
  2. Npm 恶意包试图窃取 Discord 敏感信息和浏览器文件
  3. 模型修饰在无人机航测实景三维模型生产中的应用——以SVSMeshEditor软件为例
  4. Git 代码管理常用命令
  5. 移动安全-iOS(三)
  6. 使用RTL-SDR打开车门
  7. 利用位运算实现加减乘除
  8. thrift之TTransport层的堵塞的套接字I/O传输类TSocket
  9. UbuntuHelp:AptGet/Howto/zh
  10. 真的不再使用*狗输入法了,改七七拼音