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

Leetcode:【448. 找到所有数组中消失的数字】题解

题目

给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。

难度:简单

题目链接:448. 找到所有数组中消失的数字

示例1

输入:nums = [4,3,2,7,8,2,3,1]
输出:[5,6]

示例2

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

解题思路:

题目意思是再在有 n 个元素的数组中,找出[1,n]中没有出现的数组,其中 n 个元素中,可能会出现重复的元素,于是 我们就可以 再次创建一个临时数组tmp(每个元素置0),存放相应的元素来取消重复的元素。然后遍历整个数组,如果元素为零,则为没有出现在nums中的数字。

代码展示

/*** Note: The returned array must be malloced, assume caller calls free().*/int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize){int *arr = (int*)malloc(sizeof(int)*numsSize);//用于返回的数组int tmp[100000] = {0};int i = 0;int x = 0;for(i = 0;i<=numsSize;i++){tmp[i] = 0;}for(i = 0;i<numsSize;i++){x = nums[i]%(numsSize+1);tmp[x-1] = x;}i = 1;int count  = 0;//记录返回数组的大小int j = 0;for(i = 1;i<=numsSize;i++){if(tmp[i-1] == 0){arr[j++] = i;count++;}}*returnSize = count;return arr;
}

【解析】

这里的arr数组用于返回数组,tmp 临时数组主要用来消除重复的元素,主要思路

通过对循环每一个数组元素,对其进行取模运算,再将其放入对应的下标的数组中

但是前提是 要对 tmp数组每一个元素置0

 

 放入对应的下标的数组中后,

 开始遍历数组,找出[1,n] 中没有出现在nums数组中的数字

    for(i = 1;i<=numsSize;i++){if(tmp[i-1] == 0){arr[j++] = i;count++;}}

接着就是返回  返回数组的大小和返回数组了。

    *returnSize = count;return arr;

http://www.lryc.cn/news/145658.html

相关文章:

  • 2023年中,量子计算产业现状——
  • 微信小程序智慧流调微信小程序设计与实现
  • 分布式集群框架——有关zookeeper的面试考点
  • Spring Cloud Gateway的快速使用
  • VSCode-C++环境配置+Cmake
  • python爬虫14:总结
  • 扩散模型实战(八):微调扩散模型
  • Android 全局控件属性设置
  • 下面是实践百度飞桨上面的pm2.5分类项目_logistic regression相关
  • 阿里云误删Python后域yum报错解决方案
  • unordered-------Hash
  • 数据仓库总结
  • hadoop学习:mapreduce入门案例二:统计学生成绩
  • 自学TypeScript-基础、编译、类型
  • nginx配置https
  • windows Etcd的安装与使用
  • 【py】为什么用 import tkinter 不能运行
  • 【深度学习】实验04 交叉验证
  • whisper语音识别部署及WER评价
  • java太卷了,怎么办?
  • android多屏触摸相关的详解方案-安卓framework开发手机车载车机系统开发课程
  • 微信小程序 实时日志
  • Spring AOP基于注解方式实现和细节
  • CVPR2023论文及代码合集来啦~
  • 基于ETLCloud的自定义规则调用第三方jar包实现繁体中文转为简体中文
  • TDesign在按钮上加入图标组件
  • Linux 终端命令行 产品介绍
  • 计算机毕设 基于深度学习的植物识别算法 - cnn opencv python
  • 【STM32】学习笔记-江科大
  • Doris架构中包含哪些技术?