力扣448(java)-找到数组中所有消失的数(简单)
2022/4/6 22:49:14
本文主要是介绍力扣448(java)-找到数组中所有消失的数(简单),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目:
给你一个含 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) 的情况下解决这个问题吗? 你可以假定返回的数组不算在额外空间内。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
一、
1.创建一个ArrayList数组和一个布尔型数组
2.先遍历一遍nums数组,把出现过的数字的b[i]设置为true
3.然后遍历循环1-n,如果b[i]=false,则表示nums数组中没出现过,则添加到结果数组中
代码:
二、
1.创建一个ArrayList数组和一个HashSet集合(不允许有重复元素)
2.循环遍历,去掉重复元素,添加到新的集合中
3.循环遍历1-n,如果集合中不包含某个元素,就添加到数组中,最终输出数组
小知识:
1.ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制
创建ArrayList:
ArrayList<E> objectName =new ArrayList<>();
2.添加元素到 ArrayList 可以使用 add() 方法
a.add(i);
3. ArrayList可以使用 for-each 来迭代元素
4.HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合
创建一个 HashSet 对象 b,用于保存元素
HashSet b = new HashSet()
5.HashSet 类添加元素可以使用 add() 方法
for(int i = 0; i < n;i++){ b.add(nums[i]); }
6.HashSet 类使用 contains() 方法来判断元素是否存在于集合当中
for(int i = 1;i < n + 1; i++){ if(!b.contains(i)){ a.add(i); }
7.布尔数组,默认值是false, 并且只会打印false或者是true
根据根据字符数组的长度创建布尔数组的个数
boolean[] b = new boolean[c.length];
这篇关于力扣448(java)-找到数组中所有消失的数(简单)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南