返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++实现LeetCode(163.缺失区间)
  • 355
分享到

C++实现LeetCode(163.缺失区间)

2024-04-02 19:04:59 355人浏览 泡泡鱼
摘要

[LeetCode] 163. Missing Ranges 缺失区间 Given a sorted integer array nums, where the

[LeetCode] 163. Missing Ranges 缺失区间

Given a sorted integer array nums, where the range of elements are in the inclusive range [lowerupper], return its missing ranges.

Example:

Input: nums = [0, 1, 3, 50, 75], lower = 0 and upper = 99,
Output: ["2", "4->49", "51->74", "76->99"]

这道题让我们求缺失区间,跟之前那道 Summary Ranges 很类似,给了一个空间的范围 [lower upper],缺失的区间的范围需要在给定的区间范围内。遍历 nums 数组,假如当前数字 num 大于 lower,说明此时已经有缺失区间,至少缺失一个 lower 数字,此时若 num-1 大于 lower,说明缺失的是一个区间 [lower, num-1],否则就只加入一个数字即可。由于 OJ 之后加入了许多 tricky 的 test cases,使得论坛上很多解法都 fail 了。其实很多是跪在了整型溢出,当数组中有整型最大值时,此时 lower 更新为 num+1 时就会溢出,所以在更新之前要先判断一下,若 num 已经是整型最大值了,直接返回结果 res 即可;否则才更新 lower 继续循环。for 循环退出后,此时可能还存在缺失区间,就是此时 lower 还小于等于 upper 时,可以会缺失 lower 这个数字,或者 [lower, upper] 区间,最后补上这个区间就可以通过啦,参见代码如下:


class Solution {
public:
    vector<string> findMissingRanges(vector<int>& nums, int lower, int upper) {
        vector<string> res;
        for (int num : nums) {
            if (num > lower) res.push_back(to_string(lower) + (num - 1 > lower ? ("->" + to_string(num - 1)) : ""));
            if (num == upper) return res;
            lower = num + 1;
        }
        if (lower <= upper) res.push_back(to_string(lower) + (upper > lower ? ("->" + to_string(upper)) : ""));
        return res;
    }
};

GitHub 同步地址:

https://github.com/grandyang/leetcode/issues/163

类似题目:

Summary Ranges

参考资料:

Https://leetcode.com/problems/missing-ranges/

https://leetcode.com/problems/missing-ranges/discuss/50468/Accepted-Java-solution-8-lines-and-0ms

到此这篇关于c++实现LeetCode(163.缺失区间)的文章就介绍到这了,更多相关C++实现缺失区间内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++实现LeetCode(163.缺失区间)

本文链接: https://lsjlt.com/news/131570.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++实现LeetCode(163.缺失区间)
    [LeetCode] 163. Missing Ranges 缺失区间 Given a sorted integer array nums, where the ...
    99+
    2024-04-02
  • C++实现LeetCode之缺失区间的示例分析
    这篇文章给大家分享的是有关C++实现LeetCode之缺失区间的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。[LeetCode] 163. Missing Ranges 缺失区间Given a sort...
    99+
    2023-06-20
  • C++实现LeetCode(41.首个缺失的正数)
    [LeetCode] 41. First Missing Positive 首个缺失的正数 Given an unsorted integer array, find the sma...
    99+
    2024-04-02
  • C++实现LeetCode(56.合并区间)
    [LeetCode] 56. Merge Intervals 合并区间 Given a collection of intervals, merge all overlapping ...
    99+
    2024-04-02
  • C++实现LeetCode(57.插入区间)
    [LeetCode] 57. Insert Interval 插入区间 Given a set of non-overlapping intervals, ins...
    99+
    2024-04-02
  • C++实现LeetCode(228.总结区间)
    [LeetCode] 228.Summary Ranges 总结区间 Given a sorted integer array without duplicates, return ...
    99+
    2024-04-02
  • C++实现LeetCode之区间的示例分析
    这篇文章将为大家详细讲解有关C++实现LeetCode之区间的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。[LeetCode] 228.Summary Ranges 总结区间Given a so...
    99+
    2023-06-20
  • C++实现LeetCode(130.包围区域)
    [LeetCode] 130. Surrounded Regions 包围区域 Given a 2D board containing 'X' and ...
    99+
    2024-04-02
  • C++实现LeetCode(164.求最大间距)
    [LeetCode] 164. Maximum Gap 求最大间距 Given an unsorted array, find the maximum difference betw...
    99+
    2024-04-02
  • C++怎么实现LeetCode
    这篇文章主要介绍“C++怎么实现LeetCode”,在日常操作中,相信很多人在C++怎么实现LeetCode问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++怎么实现LeetCode”的疑惑有所帮助!接下来...
    99+
    2023-06-20
  • C++如何实现LeetCode
    这篇文章给大家分享的是有关C++如何实现LeetCode的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。[LeetCode] Reverse Linked List 倒置链表Reverse a singly lin...
    99+
    2023-06-20
  • C++实现LeetCode(121.买卖股票的最佳时间)
    [LeetCode] 121.Best Time to Buy and Sell Stock 买卖股票的最佳时间 Say you have an array for which th...
    99+
    2024-04-02
  • C++实现LeetCode之包围区域的示例分析
    这篇文章将为大家详细讲解有关C++实现LeetCode之包围区域的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。[LeetCode] 130. Surrounded Regions 包围区域Giv...
    99+
    2023-06-20
  • C++中如何实现LeetCode
    这篇文章主要为大家展示了“C++中如何实现LeetCode”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C++中如何实现LeetCode”这篇文章吧。[LeetCode] 35. Search ...
    99+
    2023-06-20
  • C++中怎么实现LeetCode
    今天就跟大家聊聊有关C++中怎么实现LeetCode,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。[LeetCode] 126. Word Ladder II 词语阶梯之二Given...
    99+
    2023-06-20
  • C++实现LeetCode(28.实现strStr()函数)
    [LeetCode] 28. Implement strStr() 实现strStr()函数 Implement strStr(). Return the index of...
    99+
    2024-04-02
  • C++实现LeetCode(122.买股票的最佳时间之二)
    [LeetCode] 122.Best Time to Buy and Sell Stock II 买股票的最佳时间之二 Say you have an array for whic...
    99+
    2024-04-02
  • C++实现LeetCode(123.买股票的最佳时间之三)
    [LeetCode] 123.Best Time to Buy and Sell Stock III 买股票的最佳时间之三 Say you have an array for whi...
    99+
    2024-04-02
  • C++实现LeetCode之求最大间距的示例分析
    这篇文章主要介绍C++实现LeetCode之求最大间距的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完![LeetCode] 164. Maximum Gap 求最大间距Given an unsorted ar...
    99+
    2023-06-20
  • C++实现LeetCode(120.三角形)
    [LeetCode] 120.Triangle 三角形 Given a triangle, find the minimum path sum from top to bottom....
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作