【leetcode刷题】63

我们可以不考虑输出结果的顺序。

[](()Solution

------------------------------- 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 --------------------------------------

昨天看大佬直播,学到一个小技巧,

我们可以通过看题目给的数据范围来推断可以使用的算法

本题暴力法肯定可以做,也肯定超时,所以考虑使用set去重的思想

  • 将第一个集合放入set

  • 如果第二个集合里的元素不可以继续放入,说明重合,返回该元素

  • 注意返回的数组不能有重复值,所以还需要一个set去重

[](()Code


所有leetcode代码已同步至[github](()

欢迎star

/**

  • @author 一条coding

*/

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)

【leetcode刷题】63_第1张图片

[](()寻宝


⭐今天是坚持刷题更文的第63/100天

⭐各位的点赞、关注、收藏、评论、订阅就是一条创作的最大动力

⭐更多数据结构和算法讲解欢迎关注专栏[《糊涂算法》](()

为了回馈各位粉丝,礼尚往来,给大家准备了一些算法教学视频和电子书

需要的小伙伴可以点「下方卡片」关注后回复「算法」领取

你可能感兴趣的:(Java,经验分享,架构,java)