leetcode163.缺失的区间,模拟

news2024/9/28 14:03:45

leetcode163.缺失的区间

给定一个排序的整数数组 nums ,其中元素的范围在 闭区间 [lower, upper] 当中,返回不包含在数组中的缺失区间。

示例:
输入: nums = [0, 1, 3, 50, 75], lower = 0 和 upper = 99,
输出: [“2”, “4->49”, “51->74”, “76->99”]
在这里插入图片描述

题目分析

本题要求找出给定整数数组 nums 中缺失的区间。数组 nums 已经排序,且数组中的元素均为闭区间。需要找到所有不在 nums 中的闭区间,并返回这些区间的字符串表示形式。

算法步骤

  1. 初始化:在 nums 数组前后分别添加 lower-1upper+1,以便处理边界情况。
  2. 遍历数组:遍历处理后的数组,比较相邻元素。
  3. 判断区间
    • 如果相邻元素差为1,表示没有缺失的区间,继续遍历。
    • 如果相邻元素差为2,表示缺失一个元素,将这个元素添加到结果中。
    • 如果相邻元素差大于2,表示缺失一个区间,将这个区间添加到结果中。
  4. 返回结果:返回所有缺失区间的字符串表示形式。

算法流程

差为1
差为2
差大于2
开始
初始化数组
遍历数组
判断区间
继续遍历
添加缺失元素到结果
添加缺失区间到结果
遍历结束?
返回结果
结束

算法代码

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

算法分析

  • 时间复杂度:O(n),其中 n 是数组 nums 的长度。我们只需要遍历一次数组。
  • 空间复杂度:O(1),除了返回结果所用的空间外,我们只需要常数级别的额外空间。
  • 易错点:处理边界情况时,需要在数组前后添加 lower-1upper+1,以正确处理包含边界值的情况。
  • 注意点:在转换区间为字符串时,注意单个元素和区间的不同表示方式。

相似题目

题目链接
LeetCode 228. Summary Ranges求连续区间的总结
LeetCode 163. Missing Ranges本题的变体,更接近原题
LeetCode 229. Majority Element II找出数组中出现次数超过 ⌊ n/3 ⌋ 次的元素

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2173722.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenSource - 开源WAF_SamWaf

文章目录 PreSafeLine VS SamWaf开发初衷软件介绍架构界面主要功能 使用说明下载最新版本快速启动WindowsLinuxDocker 启动访问升级指南自动升级手动升级 在线文档 代码相关代码托管介绍和编译已测试支持的平台测试效果 安全策略问题反馈许可证书贡献代码 Pre Nginx - 集成Mod…

关系模型与关系代数——数据库原理 总结2

2.1 关系模型 关系数据结构 关系模型的数据结构是二维表&#xff0c;亦称为关系。关系数据库是表的集合&#xff0c;即关系的集合。表是一个实体集&#xff0c;一行就是一个实体&#xff0c;它由有关联的若干属性的值所构成。 关系模型的相关概念 列就是数据项 或 字段 或 属…

C++那些你不得不知道的(2)

C那些你不得不知道的&#xff08;2&#xff09; 1、缺省参数在使用的遍历 &#xff08;1&#xff09;以下是实现顺序表的初始化和检查容量空间的方式&#xff1a; void Init(list* ps) {ps->arr NULL;ps->Capacity ps->size 0; }void CheckCapacity(list* ps) {…

量化系统QTYX使用攻略|“自动交易”篇——ETF量化框架,集成“策略回测仓位风控下单”(更新v2.9.2)...

QTYX系统简介 股票量化交易系统QTYX是一个即可以用于学习&#xff0c;也可以用于实战炒股分析的系统。 分享QTYX系统目的是提供给大家一个搭建量化系统的模版&#xff0c;最终帮助大家搭建属于自己的系统。因此我们提供源码&#xff0c;可以根据自己的风格二次开发。 关于QTYX的…

ABAP版本管理

在开发中ABAP管理有查看&#xff0c;生成&#xff0c;比对&#xff0c;远程比对&#xff0c;回滚&#xff0c;删除等等操作。日常中往往会遇到需要回滚到上一版本的代码&#xff0c;但是ABAP不像git代码管理那么专业&#xff0c;但是也是可以回滚代码的。在此记录一下操作过程。…

大模型时代,2024的传统程序员还需要写代码吗?需要学习大模型吗?

一&#xff0e;引言 随着大模型&#xff08;如GPT等&#xff09;的迅猛发展&#xff0c;软件开发领域中我们的开发方式也在悄然发生变化。当然&#xff0c;我作为一名传统的Java后端开发工程师&#xff0c;在职业生涯的初期主要专注于使用多种数据结构以及算法编写业务代码。 …

所有测试人,下半年的新方向(大模型),赢麻了!!!

现在做测试&#xff0c;真的挺累的。 现在测试越来越难做&#xff0c;晋升困难&#xff0c;工资迟迟不涨……公司裁员&#xff0c;测试首当其冲&#xff01;&#xff01; 做测试几年了&#xff0c;还没升职&#xff0c;就先到了“职业天花板”。 想凭工作几年积累的经验&…

面向未来的设计:推动企业架构创新的关键——The Open Group 2024生态系统架构与可持续发展年度大会

在当今快速变化的数字时代&#xff0c;企业的可持续发展和创新能力比以往任何时候都更为重要。The Open Group 2024生态系统架构可持续发展年度大会&#xff0c;为全球技术和数字化转型专业人士提供了一个无与伦比的机会&#xff0c;以探索先进的企业架构与建模解决方案&#x…

SQLite3模块使用详解

目录 一、引言 1.1 SQLite3 简介 1.2 Python sqlite3 模块 二、连接数据库 2.1 导入 sqlite3 模块 2.2 连接数据库 2.3 创建游标对象 三、执行 SQL 语句 3.1 创建表 3.2 插入数据 3.3 查询数据 3.4 更新数据 3.5 删除数据 四、处理查询结果 4.1 fetchall() 4.2…

FollowYourPose - 生成可编辑、姿态可控制的人物视频

文章目录 关于 FollowYourPose摘要&#x1f37b;&#x1f37b;&#x1f37b;设置环境&#x1f483;&#x1f483;&#x1f483;培训&#x1f57a;&#x1f57a;&#x1f57a;推理&#x1f483;&#x1f483;&#x1f483; 本地 Gradio 演示&#x1f57a;&#x1f57a;&#x1f…

性能测试常见故障和解决思路详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、性能问题分析流程 1、查看服务器的CPU、内存 、负载等情况&#xff0c;包括应用服务器和数据库服务器 2、查看数据库健康状态&#xff0c;数据库死锁、连…

监控易监测对象及指标之:全面监控Sybase_New数据库

随着企业数据量的不断增长和业务的复杂化&#xff0c;数据库的稳定性和性能成为了保障业务连续性的关键因素。Sybase_New数据库作为众多企业选择的数据管理解决方案&#xff0c;其稳定性和性能对于企业的运营至关重要。 为了确保Sybase_New数据库的稳定运行和高效性能&#xff…

在类外定义的运算符重载函数

对基本的数据类型&#xff0c;C提供了许多预定义的运算符&#xff0c;如&#xff0c;-&#xff0c;*&#xff0c;/&#xff0c;等&#xff0c;他们可以用一种简洁的方式工作&#xff0c;例如 运算符&#xff1a; int x, y, z; x 3; y 5; z x y; 这是将两个整数相加的方法…

急!现在转大模型还来得及吗?零基础入门到精通,收藏这一篇就够了

大模型的出现&#xff0c;让行内和行外大多数人都感到非常焦虑。 行外很多人想了解却感到无从下手&#xff0c;行内很多人苦于没有硬件条件无法尝试。想转大模型方向&#xff0c;相关的招聘虽然层出不穷&#xff0c;但一般都要求有大模型经验。而更多的人&#xff0c;则一直处…

指数级增长使Hugging Face上的人工智能模型达到100万个

本周四&#xff0c;人工智能托管平台Hugging Face的人工智能模型列表首次突破100 万个&#xff0c;这标志着快速扩张的机器学习领域的一个里程碑。 人工智能模型是一种计算机程序&#xff08;通常使用神经网络&#xff09;&#xff0c;通过数据训练来执行特定任务或进行预测。 …

【算法】字符串相关

【ps】本篇有 4 道 leetcode OJ。 一、算法简介 字符串是一种数据结构&#xff0c;大多与别的算法结合在一起出题&#xff0c;例如模拟、高精度算法、双指针、dp、回溯等&#xff0c;因此这个专题的题型本身是特别丰富的。本篇选取了较为典型的字符串题型&#xff0c;除了涵盖一…

双端之Nginx+Php结合PostgreSQL搭建Wordpress

第一台虚拟机:安装 Nginx 更新系统包列表: sudo apt update安装 Nginx及php扩展: sudo apt install nginx php-fpm php-pgsql php-mysqli -y启动 Nginx 服务: sudo systemctl start nginx检查 Nginx 是否正常运行: xdg-open http://localhost注意:终端命令打开网址 …

【射频通信电子线路第六讲】射频信号与调制包括调幅和部分调频的内容

一、调制&#xff08;Modulation&#xff09;与解调&#xff08;Demodulation&#xff09; 1、相关概念 调制是指使一个信号&#xff08;如光信号、高频电磁振荡等&#xff09;的某些参数&#xff08;振幅、频率和相位&#xff09;按照另一个欲传输的信号的特点变化的过程。 …

Linux基础(二):磁盘分区

1.磁盘在Linux中的文件名 SATA接口的磁盘在Linux中名字为/dev/sdx。/dev 几乎是所有外接设备存放的文件夹&#xff1a; 磁盘在Linux中的文件名是不确定的&#xff0c;比如拿一个U盘插到Linux主机&#xff0c;可能第一次名字为sda&#xff0c;拔插后名字为sdc&#xff0c;这取…

新160个crackme - 067-CarLitoZ.1

运行分析 需要破解Code PE分析 VB程序&#xff0c;32位&#xff0c;无壳 静态分析&动态调试 使用VB Decompiler分析&#xff0c;发现注册模块需要满足var_18 var_ret_7var_18 abt.Label1.MousePointer 即输入框填入的信息var_ret_7 Mid(var_1C, 6, 1) Mid(var_20, 9, 1…