Leetcode 349.两个数组的交集(Java)

题目描述:给定两个数组,编写一个函数来计算它们的交集。


------我的小白代码及思路(Java解决):
  • 首先双重for循环遍历两个数组找到它们其中共有的元素,将该元素放进结合set中;
  • 求出set集合的长度a
  • 开辟一个长度为a的数组nums3
  • 遍历set集合,将集合中的元素一一赋值给nums3数组
  • 最后返回数组nums3即可
------这种代码应该最好理解,没有高大上的东西,都是基础,浅显易懂,虽然在时间上和空间上都有点不划算,但是毕竟首先能解决问题是最重要的.
class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        Set<Integer> set = new HashSet<>();
        for(int i = 0;i < nums1.length;i++){
            for(int j = 0;j < nums2.length;j++){
                if(nums1[i]==nums2[j])
                    set.add(nums1[i]);  
            }
        }
        int a = set.size();
        int i = 0;
        int []nums3 = new int[a];
        for(int item:set){
            nums3[i++] = item;
        }
        return nums3;
    }
}
Python的解法如下:
  • python中两个集合set取交集就是set1&set2
  • 这里首先将数组nums1和nums2都转换为set
  • 再利用 & 求交集
  • 最后通过list转换为数组返回即可
class Solution(object):
    def intersection(self, nums1, nums2):
        set1 = set(nums1)
        set2 = set(nums2)
        return list(set1&set2)
我还是一个特别白的小白,正在努力学习中,大家有好的方法多多交流噢!最后插一张美图。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容