前言
第7天:哈希表
哈希表则提供了更快的查找方式,线性枚举时间复杂度为O( n n n),遇到有序顺序表时采用二分查找的方式时间复杂度为O( log 2 n \log_2 n log2n)。把需要查找的数据,通过一个函数映射,找到存储数据位置的过程为哈希。哈希表,又称散列表,使用 O(n) 空间复杂度存储数据,通过哈希函数映射位置,从而实现近似 O(1) 时间复杂度的插入、查找、删除等操作。
Python中常见的数据结构有列表、字典、集合以及元组。
一、练习题目
| 题目链接 | 难度 |
|---|---|
| 1512. 好数对的数目 | ★☆☆☆☆ |
| 2006. 差的绝对值为 K 的数对数目 | ★☆☆☆☆ |
| 1347. 制造字母异位词的最小步骤数 | ★★☆☆☆ |
| 面试题 10.02. 变位词组 | ★★☆☆☆ |
二、思路与代码
1. 好数对的数目
题目描述:
给你一个整数数组 nums 。如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。返回好数对的数目。
解题思路:
1)根据题目提示,nums取值范围在100以内,创建一个长度为101的哈希数组Hash;
2)哈希数组的下标为nums的取值,每新出现一个相同下标,新的好数对加Hash[nums[i]]个,Hash[nums[i]] += 1。
class Solution(object):
def numIdenticalPairs(self, nums):
"""
:type nums: List[int]
哈希表在编程题中的应用解析

本文是关于哈希表的集训总结,详细介绍了利用哈希表解决好数对、差值绝对值为K的数对、制造字母异位词的最小步骤数以及变位词组等问题。通过实例解析哈希表在数组和字符串查找操作中的高效应用,同时探讨了知识管理和学习策略的重要性。
最低0.47元/天 解锁文章
1035

被折叠的 条评论
为什么被折叠?



