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

算法题——哈希表

242.有效的字母异位词

class Solution {public boolean isAnagram(String s, String t) {int[] mark = new int[26];for(int i=0;i<s.length();i++){mark[s.charAt(i)-'a']++;}for(int i=0;i<t.length();i++){mark[t.charAt(i)-'a']--;}for(int i : mark){if(i!=0) return false;}return true;}
}

首先new一个标记数组mark,遍历字符串s,在mark中记录每个字母出现的次数;再遍历字符串t,每遍历一个字母,就在mark中减去一次标记,若最后mark数组的内容全部为0,则说明两个单词为字母异位词,注意这里标记数组的大小只有26,所以手动建立一个哈希表,而不需要使用Java的map或set集合

349.两个数组的交集

class Solution {public int[] intersection(int[] nums1, int[] nums2) {Set<Integer> resSet = new HashSet<>();Set<Integer> set = new HashSet<>();for(int i : nums1){set.add(i);}for(int i : nums2){if(set.contains(i)){resSet.add(i);}}int[] arr = new int[resSet.size()];int j=0;for(int i:resSet){arr[j++]=i;}return arr;}
}

这里要求结果中的每个元素一定是唯一的,因此考虑使用Set集合,Collection集合的用法见文章

7.15 Java SE(集合框架 P136-P142)-CSDN博客

首先定义集合set存储nums1中的数据(已经去重),再遍历nums2中的数据,判断set中是否存在遍历的元素,若存在则他是交集元素,将其存入集合resSet(因为这个过程也有可能出现重复元素,所以要存入Set集合而非数组),最后遍历resSet将元素存入一个整型数组中并返回(因为返回值要求是整型数组,而resSet使用toArray方法得到的是Object数组,处理比较复杂)

http://www.lryc.cn/news/620100.html

相关文章:

  • 洛谷 P2607 [ZJOI2008] 骑士-提高+/省选-
  • 从 Web 开发到数据科学:全栈基础技术总结
  • nm命令和nm -D命令参数
  • 互联网大厂Java求职面试实录:Spring Boot到微服务与AI的技术问答
  • 《量子雷达》第2章 从量子信息到量子雷达 预习2025.8.13
  • Canal解析MySQL Binlog原理与应用
  • RC4算法实现
  • 一键自动化:Kickstart无人值守安装指南
  • 如何优雅地实现API接口每 10秒轮询请求?
  • 力扣面试150题--三角形最小路径和 最小路径和 不同路径 最长回文子串
  • RagFlow启动源码说明
  • 前后端分离项目在云服务器的部署
  • 【系统安装】虚拟机中安装win10企业版系统记录
  • CSS保持元素宽高比,固定元素宽高比
  • 用 mock 把 ES 单元测试@elastic/elasticsearch-mock 上手
  • Python 环境隔离实战:venv、virtualenv 与 conda 的差异与最佳实践
  • 变分自编码器VAE的Pytorch实现
  • day39_2025-08-13
  • Go 微服务限流与熔断最佳实践:滑动窗口、令牌桶与自适应阈值
  • Day19 C 语言标准 IO 机制
  • React useMemo 深度指南:原理、误区、实战与 2025 最佳实践
  • React常见的Hooks
  • 万字详解C++11列表初始化与移动语义
  • OpenCV的实际应用
  • 类和对象----中
  • 【COMSOL】Comsol学习案例时的心得记录分享
  • Mysql数据库迁移到GaussDB注意事项
  • pycharm配置连接服务器
  • 3.Cursor提效应用场景实战
  • MySQL相关概念和易错知识点(6)(视图、用户管理)