Leecode刷题——哈希表——两个数组的交集(Set哈希表)

例题:349(两个数组的交集)

Leecode刷题——哈希表——两个数组的交集(Set哈希表)_第1张图片

1.set哈希表

Java中的set哈希表的创建方法如下:

Set set1 = new HashSet<>();

给定一个数据可以使用.add()函数向哈希表中存储元素。判断哈希表是否包含某个元素可以使用.contains(key) 。与之前的数组哈希表相比,set哈希更适用于数据没有指定范围的题目,而且set哈希主要用于快速判断某个元素是否存在于哈希表中(可以理解为某个元素是否已存在 如判断某个学生是否在学校中)

2.循环遍历查找

查找某个元素是否在set哈希中常常可以使用循环+.contains(key)来实现判断

3.代码

import java.util.HashSet;
import java.util.Set;

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        //初始判断数组为空或者数组不存在,直接返回一个空数组
        if(nums1 == null || nums2 == null || nums1.length == 0 ||nums2.length == 0){
            return new int[0];
        }
        //创建用于存储nums1中值的哈希表
        Set set1 = new HashSet<>();
        //创建用于存储结果的列表
        List result_set = new ArrayList<>();
        //存放nums1中的元素至set1
        for(int i:nums1){
            set1.add(i);
        }
        //遍历nums2,若set1中包含nums2中的元素则视其为交集元素存储到结果列表中
        for(int i:nums2){
            if(set1.contains(i)){
                result_set.add(i);
            }
        }
        //重新创造一个数组用来存储结果并且返回
        int index=0;
        int[] rest = new int[result_set.size()];
        for(int i:result_set){
            rest[index++]=i;
        }
        return rest;
    }
}

相关题目:202、350

你可能感兴趣的:(leetcode,算法,java)