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

leetcode No.76 | 滑动窗口与HashMap的应用

leetcode No.76 | 滑动窗口与HashMap的应用

题目:最小覆盖字串
分解成数个小问题:统计字符串字符出现次数;比较两字符串同一key出现的次数是否一致;比较符合条件的字符串的长度
part1:
我们关注的是字符串里某个字符出现的次数,因此可以非常合理地使用键为字符、值为整数的哈希表。本文将使用Java里的HashMap类,其底层是由数组和链表或红黑树实现的。这里有两种写法:
第一种使用方便的getOrDefault(k,d)方法,此方法将获取k的值,如果为空,则以设定的默认值d为值插入该HashMap中。方法二是使用最基本的HashMap方法来实现。显然,第一种更好些,和三目运算符一样好用。

public void beMap(char[] array,HashMap<Character,Integer> hm) {// 方法一 getOrDefault(k,d)for(char c:array) {hm.put(c,hm.getOrDefault(c,0)+1);}// 方法二 // for(char c:array) {//     if(!hm.containsKey(c)) {//         hm.put(c,1);//     } else {//         hm.put(c,hm.get(c)+1);//     }// }}

part2:
由于我们只需要比较那些两个Map共同拥有的键的值,因此可以通过Java的增强for循环,在遍历一个Map的同时进行与另一个Map的元素比较来解决问题。

public static <K, V> boolean commonKeysEqual(Map<K, V> map1, Map<K, V> map2) {// 选择较小的 Map 遍历,提高效率Map<K, V> smaller = map1.size() <= map2.size() ? map1 : map2;Map<K, V> larger = map1.size() <= map2.size() ? map2 : map1;for (K key : smaller.keySet()) {// 存在同key-->判断不等-->结束if (larger.containsKey(key)) {V val1 = smaller.get(key);V val2 = larger.get(key);if (!val1.equals(val2)) {return false; // 共同键的值不相等}}}return true;
}

part3:

http://www.jsqmd.com/news/620900/

相关文章:

  • 微软研究院发现:让AI大模型变得更聪明却不消耗更多内存的方法
  • 从虚拟机到云服务器:我的Ansible学习环境搭建全记录(Ubuntu 22.04 + PPA源)
  • Claude Opus 4.6差评如潮!思考深度暴跌67%,AMD总监6852次日志打脸
  • 从零开始:将.NET 8 WebAPI无缝迁移至Docker的最佳实践
  • Qt入门基础
  • GxEPD2电子墨水驱动库深度解析:e-Paper嵌入式开发实战指南
  • 基于Python的智慧养老中心管理系统毕业设计
  • 模拟型对讲系统市场洞察:2026-2032年复合增长率(CAGR)为3.9%
  • ESP32驱动NIDEC 24H电机控制器全栈方案
  • LwRB:嵌入式轻量级环形缓冲区原理与DMA零拷贝实践
  • ZED视频录制全解析:从SVO格式到NVENC硬件加速
  • FreeRTOS任务优先级设错了?我的Zynq7020 TCP热拔插功能直接挂了
  • OPTIGA™ Trust M安全芯片Arduino开发全解析
  • mbed OS GPIO基础教程:DigitalIn/DigitalOut底层原理与实战
  • AIGlasses OS Pro 在智慧城市中的应用:交通流量视觉分析实战
  • AI Agent 跑完任务怎么通知你?我写了个微信推送服务屹
  • 从规则引擎到语义原生,AI代码审查演进全图谱,深度解析奇点大会公布的5层可信审查认证标准
  • 机器学习工程师的职业陷阱:如何避免
  • Qwen3-0.6B-FP8创意效果:模仿不同风格撰写技术教程
  • 零基础玩转Docker:从安装到实战
  • 值类型与引用类型:别再只背“栈和堆”了,看这 个实际影响绞
  • 觅感科技WiFi 2.4G5G双频双模技术的应用价值与能力
  • 从零到一:在麒麟V10桌面系统上部署Qt 5.12.3开发环境
  • 四步生图封神,GenEval从61%狂拉到92%,全面超越GPT-4o的TDM-R1模型来了
  • 扣子 2.5,过了体验那条红线
  • 台达A2/B2伺服电机编码器改功率软件那些事儿
  • 如何免费获得专业级电脑散热控制:FanControl完全指南
  • AI医学影像领域标杆推荐:德适
  • SQL中如何高效合并多张表的数据更新_使用MERGE INTO语法
  • 嵌入式AES-CBC轻量加密库:资源受限MCU的安全实现