前言
Hash表在我们开发工作中的使用频率不言而喻,在算法领域Hash表也是一个比较常用的数据结构,由于Hash查找时间,通过Hash算法可以快速定位数据是否存在。
Hash定义与问题
Hash表是可以通过hash算法确定某个key在集合中元素位置的数据结构。

上方,通过hash算法,我们可以计算key在存储哪个位置。hash表可以使用数组来实现,hash算法可以使用取模算法。
hash经典的操作
- 判断数据是否已经存在。
java
Map map = new HashMap();
if(map.contains(key) {
//key出现过了
}
- 重复数据计数
Hash法实操
leetcode242. 有效的字母异位词
java
class Solution {
public boolean isAnagram(String s, String t) {
if(s.length() != t.length()) {
return false;
}
Map<Character, Integer> map = new HashMap<>();
for(int i=0; i< s.length(); i++) {
//元素是否出现过
if(!map.containsKey(s.charAt(i))) {
map.put(s.charAt(i), 1);
} else {
//重复元素计数
map.put(s.charAt(i), map.get(s.charAt(i)) + 1);
}
}
for(int i=0; i< t.length(); i++) {
if(!map.containsKey(t.charAt(i))) {
return false;
} else {
map.put(t.charAt(i), map.get(t.charAt(i)) - 1);
}
}
for(Map.Entry<Character, Integer> entry : map.entrySet()) {
Integer value = entry.getValue();
if(value != 0) {
return false;
}
}
return true;
}
}
这道题目解题的关键依据是通过hash可以实现判断数据是否出现过
,重复数据计数
2024加油,深入理解算法,学习算法,一起学习。
