【LeetCode163】缺失的区间(to_string)

简介: 因为是有设定边界的,所以首先需要将lower-1 插入到nums的最前方(在vector中可以直接insert), 将 upper+1插入nums末尾(这里用insert或者push_back都可以的) 。然后遍历数组nums:

一、题目

image.png


二、思路

因为是有设定边界的,所以首先需要将lower-1 插入到nums的最前方(在vector中可以直接insert), 将 upper+1插入nums末尾(这里用insert或者push_back都可以的) 。然后遍历数组nums:


若nums[i+1] - nums [i] = 1时,两个相邻数已经连续了,所以不做处理, i++

若nums[i+1] - nums [i] = 2时,加入 nums[i]+1

若nums[i+1] - nums [i] > 2 时, 加入区间 nums[i]+1, nums[i+1]-1

小结:


其实就是通过遍历nums数组,比较nums[i]和nums[i+1],从而确定答案数组的内容,如根据nums[3]=50和nums[4]=75,确定往答案数组push进51->74字符元素的过程。

并且根据三种情况分类讨论。

to_string(a)将a数字转为字符串,不同字符串可以通过+拼接,并且注意单引号是字符型,双引号才是字符串型。

三、代码

class Solution {
public:
    vector<string> findMissingRanges(vector<int>& nums, int lower, int upper) {
        vector<string>ans;
        nums.insert(nums.begin(), lower - 1);
        nums.push_back(upper + 1);
        int size = nums.size();
        for(int i = 0; i < size - 1; i++){
            if(nums[i + 1] - nums[i] == 1){
                continue;
            }else if(nums[i + 1] - nums[i] == 2){
                ans.push_back(to_string(nums[i] + 1));
            }else{
                //nums[i+1]-nums[i]>2时
                ans.push_back(to_string(nums[i] + 1) + "->" + to_string(nums[i+1] - 1));
            }
        }
        return ans;
    }
};


相关文章
|
7月前
|
算法 测试技术 C#
【二分查找】【区间合并】LeetCode2589:完成所有任务的最少时间
【二分查找】【区间合并】LeetCode2589:完成所有任务的最少时间
|
7月前
|
算法 测试技术 C#
区间合并|LeetCode2963:统计好分割方案的数目
区间合并|LeetCode2963:统计好分割方案的数目
|
7月前
|
Go
golang力扣leetcode 56.合并区间
golang力扣leetcode 56.合并区间
75 0
|
2月前
|
算法
Leetcode第57题(插入区间)
LeetCode第57题“插入区间”的解题方法,包括题目描述、示例、算法思路和代码实现,旨在解决将新区间插入有序且不重叠的区间列表中,并合并重叠区间的问题。
22 0
Leetcode第57题(插入区间)
|
4月前
|
算法
LeetCode第57题插入区间
LeetCode第57题"插入区间"的解题方法,利用原区间集有序的特性,通过三步插入操作,有效实现了新区间的插入和重叠区间的合并。
LeetCode第57题插入区间
|
6月前
|
存储 算法 测试技术
力扣经典150题第四十七题:汇总区间
力扣经典150题第四十七题:汇总区间
45 1
|
6月前
|
存储 SQL 算法
高效日程管理:利用区间合并算法优化活动安排【python LeetCode57】
高效日程管理:利用区间合并算法优化活动安排【python LeetCode57】
|
6月前
|
存储 算法 搜索推荐
掌握区间合并:解决实际问题的算法策略和应用案例【python LeetCode题目56】
掌握区间合并:解决实际问题的算法策略和应用案例【python LeetCode题目56】
|
6月前
|
存储 算法 数据可视化
【模拟面试问答】深入解析力扣163题:缺失的区间(线性扫描与双指针法详解)
【模拟面试问答】深入解析力扣163题:缺失的区间(线性扫描与双指针法详解)
|
6月前
|
存储 算法 测试技术
力扣经典150题第四十九题:插入区间
力扣经典150题第四十九题:插入区间
26 0