当前位置: 首页 > news >正文

力扣(LeetCode) ——645. 错误的集合(C语言)

题目:645. 错误的集合

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

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

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

示例1:

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

示例2:

输入: nums = [1 , 1]
输出: [1 , 2]
解释:

解题思路:

使用 calloc 开辟一个numsSize+1大小的空间,空间初始值为0。再开辟一个两个字节的空间用于存放返回值。
通过循环把 nums 数组的值放在开辟空间中的下标处,再创建两个变量,一个用于计算nums数组中值的总数,另一个用于存放1~numsSize的值。判断遇到重复值的存放在返回值下标为0的位置。
最后通过sum1-(sum2-ret[0])结果存放再返回值下标为1的位置。释放numsSize+1大小的空间。

最终代码:

int* findErrorNums(int* nums, int numsSize, int* returnSize) 
{int* arr = (int*)calloc(numsSize+1,sizeof(int));int* ret = (int*)malloc(sizeof(int)*2);*returnSize = 2;int sum1 = 0;int sum2 = 0;for(int i = 0;i<numsSize;i++){if(arr[nums[i]] == 1){ret[0] = nums[i];}arr[nums[i]] = 1;sum1 += i+1;sum2 += nums[i];}ret[1] = sum1-(sum2-ret[0]);free(arr);return ret;
}

赶紧动起手来吧!!!
点击下方即可跳转
错误的集合

http://www.dtcms.com/a/358099.html

相关文章:

  • 算法(③二叉树)
  • 精简版UDP网络编程:Socket套接字应用
  • 网格纹理采样算法
  • U盘/移动硬盘里可清理的那些跨系统遗留文件
  • 使用JAVA制作minecraft红石和创造模式插件
  • 理解JVM
  • 蓝牙5.3核心技术架构解析:从控制器到主机的无线通信设计
  • 广东省省考备考(第九十天8.30)——判断推理(强化训练)
  • 项目管理的五个阶段是什么
  • 在线简历生成工具,免费好用
  • 【MLLM】从BLIP3o到BLIP3o-NEXT:统一生成与理解
  • 【Docker】Docker初识
  • AI工具营销落地方案:工业产品营销
  • python pyqt5开发DoIP上位机【诊断回复的函数都是怎么调用的?】
  • 计算机毕设 java 阿歹果园养鸡场管理系统 基于 SSM 框架的果园养鸡场全流程管理系统设计与实现 Java+MySQL 的养殖生产与进销存一体化平台开发
  • SQLSugar 封装原理详解:从架构到核心模块的底层实现
  • uniapp解析富文本,视频无法显示问题
  • HTTP的概念、原理、工作机制、数据格式和REST
  • 卫星信号和无线信号的设备厂商
  • Linux(1)|入门的开始:Linux基本指令
  • 【C++】C++ const成员函数与取地址操作符重载
  • 数据结构 03(线性:单链表)
  • 强化学习-CH6 随机近似
  • Ansible 核心运维场景落地:YUM 仓库、SSH 公钥、固定 IP 配置技巧
  • 2025年9月计算机二级C++语言程序设计——选择题打卡Day11
  • 如何取得专案/设计/设定/物件的属性
  • mysql权限user表赋权操作修改
  • 《潮汐调和分析原理和应用》之四S_Tide使用2
  • 整体设计 的语言设计:通用模型语言的标准模板语言的规格模式语言(搜狗汪仔答问)
  • 【计算机网络】生产问题排查:如何使用Wireshark抓包/读取抓包文件进行网络分析