例题:349(两个数组的交集)
1.set哈希表
Java中的set哈希表的创建方法如下:
Set<Integer> 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<Integer> set1 = new HashSet<>();
//创建用于存储结果的列表
List<Integer> 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