散列表:
定义
以键值对存储数据的一种数据结构。
原理
基于数组的下标访问随机数据的特性。
构成:
- 键,2. 哈希函数 3. 对应数组元素
但是 key值不同,可能造成一样的结果,造成了散列冲突。
那怎么来解决这个散列冲突呢
- 线性探测法
- 开放寻址法
- 链表法
- 以上的优缺点待补充
主体构成由散列函数设计,和散列函数冲突。
小练习
242. 有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
/**
- @param {string} s
- @param {string} t
- @return {boolean}
*/
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var isAnagram = function (s, t) {
if (s.length !== t.length) {
return false
}
let map1 = Object.create(null);
let flag = true
for (let i = 0; i < s.length; i++) {
if (!map1[s[i]]) {
map1[s[i]] = 1
} else {
map1[s[i]]++
}
}
for (let i = 0; i < t.length; i++) {
if (!map1[t[i]]) {
return false
} else {
map1[t[i]]--
}
}
for (let key in map1) {
if (map1[key] !== 0) {
return false
}
}
return true
};