描述 :
给你一个长度为?n
?的整数数组?nums
?,其中?nums
?的所有整数都在范围?[1, n]
?内,且每个整数出现?一次?或?两次?。请你找出所有出现?两次?的整数,并以数组形式返回。
你必须设计并实现一个时间复杂度为?O(n)
?且仅使用常量额外空间的算法解决此问题。
题目 :
LeetCode?442. 数组中重复的数据 :
分析 :
这道题还是很简单的,利用集合简单实现就可以了 .
解析 :
class Solution {
public List<Integer> findDuplicates(int[] nums) {
Set<Integer> set = new HashSet<>();
List<Integer> list = new ArrayList<>();
for(int i = 0;i < nums.length;i++){
if(set.contains(nums[i])){
list.add(nums[i]);
}
set.add(nums[i]);
}
return list;
}
}