0%

LeetCode哈希表篇

用哈希集合存储元素,可以在O(1)的时间内判断一个元素是否在集合中,从而降低时间复杂度。

创建哈希表:

1
Set<Integer> set1 = new HashSet<Integer>();

加入元素:

1
2
3
for (int num : nums1){
set1.add(num);
}

创建二元哈希表函数:

1
2
3
4
5
6
7
8
9
10
11
12
private Map<Integer, Integer> countNums(int[] nums){
Map<Integer, Integer> counts = new HashMap<Integer, Integer>();
for (int num : nums){
if (!counts.containsKey(num)){
counts.put(num, 1);
}
else{
counts.put(num, counts.get(num) + 1);
}
}
return counts;
}

entrySet()

​ 返回hashMap中所有映射项的集合视图

1
2
3
for (Map.Entry<Integer, Integer> entry : counts.entrySet()){
entry.getValue();
}