我们可以不考虑输出结果的顺序。
[](()Solution
------------------------------- 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 --------------------------------------
昨天看大佬直播,学到一个小技巧,
我们可以通过看题目给的数据范围来推断可以使用的算法
本题暴力法肯定可以做,也肯定超时,所以考虑使用set去重的思想
将第一个集合放入set
如果第二个集合里的元素不可以继续放入,说明重合,返回该元素
注意返回的数组不能有重复值,所以还需要一个set去重
[](()Code
所有
leetcode
代码已同步至[github](()
欢迎
star
/**
*/
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
Set set1 = new HashSet<>();
Set set2 = new HashSet<>();
for(int i:nums1){
set1.add(i);
}
for(int i:nums2){
if(set1.contains(i)){
set2.add(i);
}
}
int[] arr = new int[set2.size()];
int j=0;
for(int i:set2){
arr[j++] = i;
}
return arr;
}
}
[](()Result
复杂度分析
- 时间复杂度:O(m+n)
[](()寻宝
⭐今天是坚持刷题更文的第63/100天
⭐各位的点赞、关注、收藏、评论、订阅就是一条创作的最大动力
⭐更多数据结构和算法讲解欢迎关注专栏[《糊涂算法》](()
为了回馈各位粉丝,礼尚往来,给大家准备了一些算法教学视频和电子书
需要的小伙伴可以点「下方卡片」关注后回复「算法」领取