当前位置:网站首页>leetcode 448. Find All Numbers Disappeared in an Array 找到所有数组中消失的数字(简单)
leetcode 448. Find All Numbers Disappeared in an Array 找到所有数组中消失的数字(简单)
2022-08-03 20:05:00 【okokabcd】
一、题目大意
标签: 数组
https://leetcode.cn/problems/find-all-numbers-disappeared-in-an-array
给你一个含 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]
提示:
- n == nums.length
- 1 <= n <= 105
- 1 <= nums[i] <= n
- 进阶:你能在不使用额外空间且时间复杂度为 O(n) 的情况下解决这个问题吗? 你可以假定返回的数组不算在额外空间内。
二、解题思路
把所有重复出现的位置进行标记,然后再遍历一遍数组,即可找到没有出现过的数字。进一步优化,可以直接对原数组进行标记:把重复出现的数字在原数组出现的位置设为负数,最后仍然为正数的位置即为没有出现过的数。
三、解题方法
3.1 Java实现
public class Solution {
public List<Integer> findDisappearedNumbers(int[] nums) {
for (int num : nums) {
// 这个地方要注意 -1,数组下标从0开始
int pos = Math.abs(num) - 1;
if (nums[pos] > 0) {
nums[pos] = -nums[pos];
}
}
List<Integer> ans = new ArrayList<>();
for (int i = 0; i < nums.length; i++) {
if (nums[i] > 0) {
ans.add(i + 1);
}
}
return ans;
}
}
四、总结小记
- 2022/8/3 下面做按数据结构开始做,先从数组开始
边栏推荐
- Alexa染料标记RNA核糖核酸|RNA-Alexa 514|RNA-Alexa 488|RNA-Alexa 430
- 2022 CCF中国开源大会会议通知(第三轮)
- 从腾讯阿里等大厂出来创业搞 Web3、元宇宙的人在搞什么
- 利用 rpush 和 blpop 实现 Redis 消息队列
- RNA-ATTO 390|RNA-ATTO 425|RNA-ATTO 465|RNA-ATTO 488|RNA-ATTO 495|RNA-ATTO 520近红外荧光染料标记核糖核酸RNA
- ERROR: You don‘t have the SNMP perl module installed.
- 若依集成easyexcel实现excel表格增强
- 高并发,你真的理解透彻了吗?
- Golang死信队列的使用
- 若依集成browscap读取浏览器用户代理
猜你喜欢
随机推荐
Alexa染料标记RNA核糖核酸|RNA-Alexa 514|RNA-Alexa 488|RNA-Alexa 430
ERROR: You don‘t have the SNMP perl module installed.
RNA-ATTO 390|RNA-ATTO 425|RNA-ATTO 465|RNA-ATTO 488|RNA-ATTO 495|RNA-ATTO 520近红外荧光染料标记核糖核酸RNA
建模该从哪一步开始?给你分析,给零基础的你一些学习建议
LeetCode 1374. 生成每种字符都是奇数个的字符串
WPF .cs中使用资源文件中的ControlTemplate或Style并找到控件
ESP8266-Arduino编程实例-WS2812驱动
The sword refers to Offer II 044. The maximum value of each level of the binary tree-dfs method
【飞控开发高级教程4】疯壳·开源编队无人机-360 度翻滚
tRNA甲基化偶联3-甲基胞嘧啶(m3C)|tRNA-m3C (3-methylcy- tidine)
relocation R_X86_64_PC32 against,/usr/bin/ld: final link failed: Bad value
Benchmarking Lane-changing Decision-making for Deep Reinforcement Learning
不要再用if-else
按需视觉识别:愿景和初步方案
开源生态研究与实践| ChinaOSC
友宏医疗与Actxa签署Pre-M Diabetes TM 战略合作协议
redis常用命令,HSET,XADD,XREAD,DEL等
【leetcode】剑指 Offer II 009. 乘积小于 K 的子数组(滑动窗口、双指针)
YARN功能介绍、交互流程及调度策略
入门3D建模基础教程详细分解