力扣题448找到所有数组中消失的数字
发布日期:2022-03-04 11:48:19 浏览次数:4 分类:技术文章

本文共 1247 字,大约阅读时间需要 4 分钟。

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

示例 1:

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

输出:[5,6]
示例 2:

输入:nums = [1,1]

输出:[2]

1.自己的解法:用一个辅助数组统计每个数字出现的次数,然后遍历这个数组,出现次数为0的数字就是要找的消失的数字。

class Solution {    public List
findDisappearedNumbers(int[] nums) { List
list = new ArrayList<>(); int n = nums.length; int[] numOfCounts = new int[n + 1];//统计每个数字出现的次数 for (int i = 0;i < n;i++) { numOfCounts[nums[i]]++; } for (int i = 1;i <= n;i++) { if (numOfCounts[i] == 0) {//如果出现次数为0,就说明是消失的数字 list.add(i); } } return list; }}

2.可以对原数组进行改变,从而减少空间复杂度。将所有正数作为数组下标,置对应数组值为负值,那么仍为正数的位置即为消失的数字。

class Solution {    public List
findDisappearedNumbers(int[] nums) { List
list = new ArrayList<>(); int n = nums.length; for (int i = 0;i < n;i++) { //把元素值对应的下标的元素取负数 nums[Math.abs(nums[i]) - 1] = -Math.abs(nums[Math.abs(nums[i]) - 1]); } for (int i = 0;i < n;i++) { if (nums[i] > 0) {//如果元素值大于0,就说明值为这个下标的元素没有遇到过,即消失的数字 list.add(i + 1); } } return list; }}

题源:

转载地址:https://blog.csdn.net/xxyneymar/article/details/122273646 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:力扣题437路径总和III
下一篇:力扣题438找到字符串中所有字母异位词

发表评论

最新留言

不错!
[***.144.177.141]2024年03月01日 23时44分08秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

以太坊地址和公钥_以太坊地址是什么 2019-04-21
linux查看wifi信号命令_linux – 获取WIFI信号强度 – 寻求最佳方式(IOCTL,iwlist(iw)等)... 2019-04-21
npm 不重启 全局安装后_解决修复npm安装全局模块权限的问题 2019-04-21
vs格式化json 不生效_vs code 格式化 json 配置 2019-04-21
go 字符串反序列化成对象数组_Fastjson 1.2.24反序列化漏洞深度分析 2019-04-21
onmessage websocket 收不到信息_WebSocket断开重连解决方案,心跳重连实践 2019-04-21
hibernate mysql 缓存_hibernate和mysql的缓存问题,没辙了! 2019-04-21
abp框架 mysql_ABP框架使用Mysql数据库 2019-04-21
mysql树形递归删除_使用递归删除树形结构的所有子节点(java和mysql实现) 2019-04-21
linux mysql 不能连接远程_linux mysql 远程连接 2019-04-21
PHP实现 bcrypt,如何使php中的bcrypt和Java中的jbcrypt兼容 2019-04-21
php8安全,PHP八大安全函数解析 2019-04-21
php基础语法了解和熟悉的表现,PHP第二课 了解PHP的基本语法以及目录结构 2019-04-21
matlab中lag函数用法,MATLAB movavg函数用法 2019-04-21
matlab变形监测,基于matlab的变形监测数据处理与分析_毕业设计论文 2019-04-21
opencv matlab编程,在Matlab中调用OpenCV函数 | 学步园 2019-04-21
c语言文件wt,c语言,wt和rt中的t是什么意思 2019-04-21
c语言运行几进制,【C语言】求已知等式在几进制条件下成立 2019-04-21
电梯运行仿真c语言代码,电梯调度算法模拟(示例代码) 2019-04-21
android组件动态接收数据库,Android开发——fragment中数据传递与刷新UI(更改控件)... 2019-04-21