算法:哈希表

Java 哈希表题型模板与例题

一、计数类(Counting)

模板:

java 复制代码
Map<Integer, Integer> map = new HashMap<>();
for (int num : nums) {
    map.put(num, map.getOrDefault(num, 0) + 1);
}
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
    if (entry.getValue() > n / 2) return entry.getKey();
}

例题:

二、查找/去重类(Lookup / Deduplication)

模板:

java 复制代码
Set<Integer> set = new HashSet<>();
for (int num : nums) {
    if (!set.add(num)) {
        // 已存在,处理逻辑
    }
}

例题:

三、映射类(Mapping)

模板:

java 复制代码
Map<Character, Character> map = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
    if (!map.containsKey(s.charAt(i))) {
        map.put(s.charAt(i), t.charAt(i));
    } else if (map.get(s.charAt(i)) != t.charAt(i)) {
        return false;
    }
}

例题:

四、前缀和/累计和类(Prefix / Cumulative Sum)

模板:

java 复制代码
Map<Integer, Integer> prefixSum = new HashMap<>();
prefixSum.put(0, 1);
int sum = 0, count = 0;
for (int num : nums) {
    sum += num;
    if (prefixSum.containsKey(sum - k)) count += prefixSum.get(sum - k);
    prefixSum.put(sum, prefixSum.getOrDefault(sum, 0) + 1);
}

例题:

五、滑动窗口 + 哈希表

模板:

java 复制代码
Map<Character, Integer> window = new HashMap<>();
int left = 0, right = 0;
while (right < s.length()) {
    char c = s.charAt(right++);
    window.put(c, window.getOrDefault(c, 0) + 1);

    while (window满足条件) {
        // 更新答案
        char d = s.charAt(left++);
        window.put(d, window.get(d) - 1);
        if (window.get(d) == 0) window.remove(d);
    }
}

例题:

相关推荐
AI人工智能+电脑小能手5 小时前
【大白话说Java面试题】【Java基础篇】第22题:HashMap 和 HashSet 有哪些区别
java·开发语言·哈希算法·散列表·hash
昵称小白5 小时前
复杂度分析方法
算法
科研前沿5 小时前
2026 数字孪生前沿科技:全景迭代报告 —— 镜像视界生成式孪生(Generative DT)技术白皮书
大数据·人工智能·科技·算法·音视频·空间计算
Deepincode6 小时前
Redis源码探究系列—跳表(skiplist)源码实现详解
redis
学涯乐码堂主7 小时前
有趣的“打擂台算法”
c++·算法·青少年编程·gesp
Tutankaaa8 小时前
知识竞赛题库设计全攻略
人工智能·算法
WolfGang0073218 小时前
代码随想录算法训练营 Day50 | 图论 part08
数据结构·算法·图论
虹科网络安全9 小时前
艾体宝产品|深度解读 Redis 8.4 新增功能:原子化 Slot 迁移(下)
数据库·redis·bootstrap
aini_lovee10 小时前
多目标粒子群优化(MOPSO)双适应度函数MATLAB实现
人工智能·算法·matlab
yong999010 小时前
图像融合与拼接:完整MATLAB工具箱
算法·计算机视觉·matlab