Другие задачи
Хэш-карты почти вездесущи. Мы обсудили некоторые из наиболее распространенных шаблонов, но существует неограниченное количество способов включения хэш-таблиц в алгоритм. Из-за того, насколько важны хэш-таблицы, мы рассмотрим еще несколько примеров того, как хэш-таблицы могут использоваться в различных задачах. Крайне важно, чтобы вы чувствовали себя комфортно с хэш-таблицами, если вы хотите пройти собеседование.
Пример 1
https://leetcode.com/problems/group-anagrams/description/

/**
* @param {string[]} strs
* @return {string[][]}
*/
var groupAnagrams = function (strs) {
if (strs.length <= 1) return [strs];
const map = new Map();
for (const str of strs) {
const key = str.split("").sort().join("");
const group = map.get(key) || [];
group.push(str);
map.set(key, group);
}
return Array.from(map.values());
};
Пример 2
https://leetcode.com/problems/longest-substring-without-repeating-characters/description/

/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function (s) {
const map = new Map();
let max = 0;
let start = 0;
for (let i = 0; i < s.length; i++) {
if (map.has(s[i]) && map.get(s[i]) >= start) {
start = map.get(s[i]) + 1;
}
map.set(s[i], i);
max = Math.max(max, i - start + 1);
}
return max;
};
Стоит прорешать для лучшего понимания