5.C++力扣刷题645

2023-11-02

题目:
集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合丢失了一个数字并且有一个数字重复 。

给定一个数组 nums 代表了集合 S 发生错误后的结果。

请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/set-mismatch
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

示例:
示例 1:
输入:nums = [1,2,2,4]
输出:[2,3]

示例 2:
输入:nums = [1,1]
输出:[1,2]

提示:
2 <= nums.length <= 10^4
1 <= nums[i] <= 10^4

个人代码如下:

class Solution {
public:
    vector<int> findErrorNums(vector<int>& nums) {
        vector<int> newnums;//用来返回最终结果
        sort(nums.begin(),nums.end());//利用sort函数对数组进行排序
        int number = 1;//用来进行数组数字顺序比对,初始值设为1
        //本层循环用来找到相同的重复数
        for(int i=0;i<nums.size()-1;i++){
            if(nums[i] == nums[i+1]){
                newnums.push_back(nums[i]);//将当前的数组元素存入返回结果的新数组中
                nums.erase(nums.begin()+i,nums.begin()+i+1);//利用erase函数删除下一个相同元素
                break;//数组只有一个重复数,找到后即可退出循环
            }
            /*nums.erase(nums.begin()+i,nums.begin()+i+1);
            break;*/
        }
        //本层循环用来找到不匹配的元素
        for(int i=0;i<nums.size()+1;i++){
            if(nums[i] != number){
                newnums.push_back(number);//将与数组元素不匹配的number插入到新数组中,即为丢失元素
                break;//只有一个不匹配元素,找到即可退出循环
            }
            number ++;//若数组元素与number相等,则number自增1继续循环
        }
         return newnums;   
    }
};

解题思路:
如代码注释。

官方哈希表方法代码如下:

class Solution {
public:
    vector<int> findErrorNums(vector<int>& nums) {
        vector<int> errorNums(2);
        int n = nums.size();
        unordered_map<int, int> mp;
        for (auto& num : nums) {
            mp[num]++;
        }
        for (int i = 1; i <= n; i++) {
            int count = mp[i];
            if (count == 2) {
                errorNums[0] = i;
            } else if (count == 0) {
                errorNums[1] = i;
            }
        }
        return errorNums;
    }
};

解题思路:
重复的数字在数组中出现 2 次,丢失的数字在数组中出现 0 次,其余的每个数字在数组中出现 1 次。因此可以使用哈希表记录每个元素在数组中出现的次数,然后遍历从 1 到 n 的每个数字,分别找到出现 2 次和出现 0 次的数字,即为重复的数字和丢失的数字。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

5.C++力扣刷题645 的相关文章

  • 如何获取正在访问 ASP.NET 应用程序的当前用户?

    为了获取系统中当前登录的用户 我使用以下代码 string opl System Security Principal WindowsIdentity GetCurrent Name ToString 我正在开发一个 ASP NET 应用程
  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit

随机推荐

  • C++:带内嵌对象成员的派生类的构造函数,析构函数的声明方式与执行的先后顺序

    声明了某个带内嵌对象成员的派生类的对象并进行初始化时 我们要使用到派生类的构造函数 在这时 派生类的构造函数会调用内嵌对象 父类 基类 的构造函数 那么 这些构造函数的执行顺序是什么呢 我们知道 被继承的类可以被叫做父类或基类 因此它作为构
  • 黑马Python教程实战项目--美多商城(五)

    一 用户基本信息 首先需要为用户模型类 也就是用户数据表 补充一个邮箱验证状态字段 用来记录用户的邮箱是否验证成功 然后新建用户中心视图类 继承LoginRequiredMixin和View类 在子路由中添加路由 定义get方法 在requ
  • 虚拟机非正常关机,重启网卡

    在命令行运行以下命令即可重新连接上网络 sudo service network manager stop sudo rm var lib NetworkManager NetworkManager state sudo service n
  • Google云

    Google 云计算 Cloud Computing 是个新概念 但也不过是分布式处理 Distributed Computing 并行处理 Parallel Computing 和网格计算 Grid Computing 的发展 也许是一个
  • 余弦计算相似度度量

    目录 pytorch 余弦相似度 余弦计算相似度度量 pytorch 余弦相似度 余弦相似度1到 1之间 1代表正相关 0代表不相关 1代表负相关 def l2 norm input axis 1 norm torch norm input
  • [改善Java代码]适当设置阻塞队列长度

    阻塞队列BlockingQueue扩展了Queue Collection接口 对元素的插入和提取使用了 阻塞 处理 我们知道Collection下的实现类一般都采用了长度自行管理方式 也就是变长
  • adamax参数_5 Optimizer-庖丁解牛之pytorch

    优化器是机器学习的很重要部分 但是在很多机器学习和深度学习的应用中 我们发现用的最多的优化器是 Adam 为什么呢 pytorch有多少优化器 我什么时候使用其他优化器 本文将详细讲述 在torch optim 包中有如下优化器torch
  • 从ChatGPT到ChatCAD:基于大型语言模型的医学图像交互式计算机辅助诊断

    1 导读 2023年年初最火热的话题之一就是OpenAI的ChatGPT1 给人类带来了巨大的冲击 1月底 美国 财富 杂志2 3月合刊的封面文章 全球爆红的ChatGPT是如何诞生的 引爆了创投圈 在这巨大的浪潮冲击下 如何让其在医疗领域
  • 某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工

    简单计算工资 张景敏 2021 1 22 include
  • 多物理场仿真 Chrono 转向机构

    为方便查阅 此文是原网站文档翻译 如有侵权 请与本人联系 目录 转向垂臂 齿条小齿轮 旋转臂 基础类别ChSteering规定 任何衍生的转向机构类别 转向机构模板 都提供了一个转向连杆体 可转向悬架可以连接到该转向连杆体上 通常通过悬架的
  • chrome下载

    https zhuanlan zhihu com p 438998185
  • Docker基础修炼1--Docker简介及快速入门体验

    本文作为Docker基础系列第一篇文章 将详细阐述和分析三个问题 Docker是什么 为什么要用Docker 如何快速掌握Docker技术 本系列文章中Docker的用法演示是基于CentOS7进行 因此假设读者已经掌握了初步的Linux知
  • 使用选择排序和二分法对传入的数组进行排序和查找

    选择排序和二分法 使用二分法查找数组中某个值得位置是要在数组提前排好序的前提下才能使用 所以要将数组进行排序 数组排序有冒泡排序 选择排序 插入排序等 今天我们使用选择排序对数组进行排序 测试类代码如下图 运行结果如下图 位置为i 1 所以
  • JSP基础理论

    来自 千峰涛哥B站资料 一 JSP概述 1 1 Servlet使用的不足 Servlet是一个动态网页技术 客户端通过请求Servlet类可以相应给客户端一个动态网页 但是Servlet在使用过程中有什么不足之处呢 开发方式麻烦 继承Htt
  • 在Java基础上对比学习C#基本语法

    文章目录 一 引包 二 构造函数 三 析构函数 四 C 数据类型 五 加框 boxing 和消框 unboxing 六 运算符 七 控制语句 八 类的继承 九 方法参数的种类 十 操作符重载 十一 this关键字 十二 类的多态 十三 抽象
  • 目标检测模型的评价指标 mAP

    在使用机器学习解决实际问题时 通常有很多模型可用 每个模型都有自己的怪癖 quirks 并且基于各种因素 性能会有所不同 模型性能的评定都是在某个数据集上进行的 通常这个数据集被称为 validation 或 test 数据集 模型性能的评
  • Java+Swing形成GUI图像界面

    一 Swing 简介 Swing 主要用来开发 GUI 程序 GUI Graphical User Interface 即图形用户界面 Java 中针对 GUI 设计提供了丰富的类库 这些类分别位于 java awt 和 java swin
  • Android高仿qq及微信底部菜单的几种实现方式

    文章目录 导航类型 第一种方式 侧滑菜单 底部导航 已经实现聊天 表情 图片 位置 语音等信息的发送 第二种方式 Fragment PopupWindow仿QQ空间最新版底部菜单栏 第三种方式 FragmentTabHost实现qq底部Ta
  • (一)在ubuntu20.04安装VPN服务

    很多时候需要从世界各地来访问公司服务器 电脑 工厂设备 实现方式有很多种 主要分为VPN和内网穿透方式 但是他们俩都存在一些问题 例如内网穿透主要利用外网IP 端口映射内网IP地址 端口方式 需要在设备端 电脑端装软件 例如frp方式需要在
  • 5.C++力扣刷题645

    题目 集合 s 包含从 1 到 n 的整数 不幸的是 因为数据错误 导致集合里面某一个数字复制了成了集合里面的另外一个数字的值 导致集合丢失了一个数字并且有一个数字重复 给定一个数组 nums 代表了集合 S 发生错误后的结果 请你找出重复