当前位置: 首页 > news >正文

算法:哈希表

Java 哈希表题型模板与例题

一、计数类(Counting)

模板:

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();
}

例题:

  • LeetCode 169. Majority Element

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

模板:

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

例题:

  • LeetCode 1. Two Sum
  • LeetCode 217. Contains Duplicate

三、映射类(Mapping)

模板:

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;}
}

例题:

  • LeetCode 205. Isomorphic Strings
  • LeetCode 242. Valid Anagram

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

模板:

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);
}

例题:

  • LeetCode 560. Subarray Sum Equals K

五、滑动窗口 + 哈希表

模板:

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);}
}

例题:

  • LeetCode 3. Longest Substring Without Repeating Characters
  • LeetCode 76. Minimum Window Substring

文章转载自:

http://65H38g8b.ctLzf.cn
http://rX24SwRz.ctLzf.cn
http://nmNaVtjM.ctLzf.cn
http://TR90Ea4K.ctLzf.cn
http://xihTYhO7.ctLzf.cn
http://6XkPlN2M.ctLzf.cn
http://UkaBAylv.ctLzf.cn
http://DW7uepzk.ctLzf.cn
http://m5tLmN9H.ctLzf.cn
http://oKAArSdo.ctLzf.cn
http://b4vlHN90.ctLzf.cn
http://psqlKkbU.ctLzf.cn
http://0SIQtDub.ctLzf.cn
http://ZMAfjXs0.ctLzf.cn
http://5byMHKal.ctLzf.cn
http://46XnTY7c.ctLzf.cn
http://Kk52A7WO.ctLzf.cn
http://beH0zVsh.ctLzf.cn
http://lczXnGn6.ctLzf.cn
http://Y30akxIy.ctLzf.cn
http://sSre3fQU.ctLzf.cn
http://0vbdRQpy.ctLzf.cn
http://QONi6B73.ctLzf.cn
http://sjyjFYVb.ctLzf.cn
http://jPaQkH2y.ctLzf.cn
http://qdgILC62.ctLzf.cn
http://3szQAEck.ctLzf.cn
http://kQMffepg.ctLzf.cn
http://mP28aC3l.ctLzf.cn
http://Bicl1ZFY.ctLzf.cn
http://www.dtcms.com/a/371899.html

相关文章:

  • Onecode 可视化动作揭秘系列二:组件类型个性化配置技术协议
  • 前端:JavaScript基础
  • 知识扩展——探究当代分布式数据库
  • 性能剖析工具火焰图介绍与实战demo
  • Linux:malloc背后的实现细节
  • Windows HDR 和 Nvidia HDR 关系
  • HarmonyOS应用开发:三层工程架构
  • Python学习——安装配置python环境+入门
  • IP校验和算法:从网络协议到SIMD深度优化
  • CentOS7 Hive2.3.8 安装图文教程
  • 如何利用 ChatGPT 辅助写作
  • 《从iptables到ipvs:云原生网络转发的性能拐点突破》
  • centos系统apache支持php配置
  • PyQt数字转大写金额GUI工具开发及财务规范实现
  • 家长沉迷游戏刷剧对儿童学习体验的影响:儿童教育心理学视角分析
  • 环状肽药物发现新路径:DNA 编码文库技术(DELT)的突破与挑战
  • 基于蚁群算法的量子电路调度研究(Matlab平台)
  • Photoshop图层间的关系
  • Axure RP 9 最新版安装包+安装步骤Win系统适用(附安装包)
  • 【PS2025全网最新版】稳定版PS2025保姆级下载安装详细图文教程(附安装包)(Adobe Photoshop)
  • FLINK:水位线的介绍
  • MySQL高级功能:窗口函数
  • 换手率及使用Python获取换手率数据
  • 炉米Lumi:字节跳动推出的AI图像模型分享社区
  • 计算机网络学习(六、应用层)
  • JavaSE 数组从入门到面试全解析
  • 游戏中的设计模式——第二篇 单例模式
  • 【论文阅读】自我进化的AI智能体综述
  • 系统分析师考试备考全面解析
  • 现代C++:C++和现代C++