目录
哈希表知识回顾
练习1:存在重复元素
练习2:存在重复元素II
练习3:两数之和
练习4:判定是否互为字符重排
练习5:字母异位词分组
在本篇文章中,我们重点讲解哈希表在算法题目中的应用,不会涉及到太多哈希表的概念、原理等知识
首先,我们先来简单回顾哈希表
哈希表知识回顾
哈希表是什么?
哈希表 是一种数据结构,用于存储键值对。通过将键转换为索引来实现快速的数据访问。具体而言,哈希表使用一个哈希函数将键映射到一个特定的索引,然后将值存储在该索引位置上。这样,在查找、插入或删除元素时,可以通过哈希函数直接计算出元素应该存储或者所在的位置,从而实现高效的数据操作。哈希表的查询、插入和删除操作的时间复杂度通常为O(1)。简而言之,哈希表是存储数据的容器,是一种非常高效的数据结构
哈希表有什么作用?
哈希表主要用于快速存储、查找和删除数据,在解决问题时,通常用于快速查找某个元素
什么时候使用哈希表?
(1)当我们需要 快速查找特定元素、 频繁查找某一个元素 及 确定一个集合中是否存在重复元素 时,可以使用哈希表来存储已经访问过的元素,从而实现快速查找和查重
(2)当需要统计数据中各个元素出现的次数,可以使用哈希表来存储元素及其对应的计数值,快速实现统计和计数
(3)当需要建立两个数据集之间的映射关系时,可以使用哈希表来实现映射
怎么使用哈希表?
(1)使用容器,在解决算法问题时,我们常使用的哈希表容器有两种:HashMap 和 HashSet
(2)使用数组模拟简易哈希表,例如,在数据范围很小的时候,我们可以考虑使用int类型的数组来模拟哈希表
接下来,我们以一些练习来进一步掌握哈希表在算法题目中的应用
练习1:存在重复元素
题目链接:
217. 存在重复元素 - 力扣(LeetCode)
题目描述:
给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。
示例 1:
输入:nums = [1,2,3,1] 输出:true
示例 2:
输入:nums = [1,2,3,4] 输出:false
示例 3:
输入:nums = [1,1,1,3,3,4,3,2,4,2] 输出:true
提示:
- 1