当前位置:网站首页>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 下面做按数据结构开始做,先从数组开始
边栏推荐
- 消除对特权账户的依赖使用Kaniko构建镜像
- Internet Download Manager简介及下载安装包,IDM序列号注册问题解决方法
- 极验深知v2分析
- 从腾讯阿里等大厂出来创业搞 Web3、元宇宙的人在搞什么
- 高性能计算软件与开源生态| ChinaOSC
- 汉源高科8光口12电口交换机千兆8光8电12电16电网管型工业以太网交换机
- 阿洛的反思
- WPF .cs中使用资源文件中的ControlTemplate或Style并找到控件
- node版本切换工具NVM以及npm源管理器nrm
- Matlab paper illustration drawing template No. 42 - bubble matrix diagram (correlation coefficient matrix diagram)
猜你喜欢
按需视觉识别:愿景和初步方案
【STM32】标准库-自定义BootLoader
消除对特权账户的依赖使用Kaniko构建镜像
【leetcode】剑指 Offer II 008. 和大于等于 target 的最短子数组(滑动窗口,双指针)
Reveal how the five operational management level of hundreds of millions of easily flow system
高性能计算软件与开源生态| ChinaOSC
149. The largest number on a straight line, and check the set
虚拟机vmware设置桥接模式上网
嵌入式分享合集27
盘点在线帮助中心对企业能够起到的作用
随机推荐
剑指 Offer II 044. 二叉树每层的最大值-dfs法
RNA核糖核酸修饰荧光染料|HiLyte Fluor 488/555/594/647/680/750标记RNA核糖核酸
亚马逊云科技 Build On 2022 - AIot 第二季物联网专场实验心得
头条服务端一面经典10道面试题解析
虚拟机vmware设置桥接模式上网
JWT详解
The sword refers to Offer II 044. The maximum value of each level of the binary tree-dfs method
【飞控开发高级教程3】疯壳·开源编队无人机-定高、定点、悬停
宁德时代2号人物黄世霖辞任副董事长:身价1370亿
第三方验收测试报告有什么作用?如何获取权威软件测试报告?
LeetCode 899. 有序队列
华为设备配置VRRP负载分担
【飞控开发高级教程4】疯壳·开源编队无人机-360 度翻滚
危化企业双重预防机制数字化建设进入全面实施阶段
Anaconda virtual environment migration
【leetcode】剑指 Offer II 009. 乘积小于 K 的子数组(滑动窗口、双指针)
安装anaconda并创建虚拟环境
2022 CCF中国开源大会会议通知(第三轮)
从文本匹配到语义相关——新闻相似度计算的一般思路
群辉查看硬盘存储占用的方式