
哈希表
goodstudy@419
这个作者很懒,什么都没留下…
展开
-
哈希表 - 字母异位词分组
输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [["bat"],["nat","tan"],["ate","eat","tea"]]思路:建一个字典,然后把所有的str排序,利用键值对来添加列表,最后打印出所有键的值(列表)strs = ["eat", "tea", "tan", "ate", "nat", "bat"]import collectionsmp = collections.defaultdict(list)原创 2021-09-09 16:19:58 · 102 阅读 · 0 评论 -
哈希表 - 字符串中的第一个唯一字符
思路:先把唯一的数都放在字典里,然后根据字典的键值对,也就是索引的值来判断一对一的比长度大小s = "leetcode"返回 0s = "loveleetcode"返回 2hash = dict()n = len(nums)for i,ch in enumates(nums): if ch in hash: hash[ch] = -1 else: hash[ch] = i first = n for k in hash.vlaues():原创 2021-09-09 14:50:48 · 155 阅读 · 0 评论 -
哈希表-两个列表的最小索引总和
输入:["Shogun", "Tapioca Express", "Burger King", "KFC"]["KFC", "Shogun", "Burger King"]输出: ["Shogun"]解释: 他们共同喜爱且具有最小索引和的餐厅是“Shogun”,它有最小的索引和1(0+1)。class Solution: def findRestaurant(self, list1: List[str], list2: List[str]) -> List[str]:原创 2021-09-09 13:29:57 · 209 阅读 · 0 评论 -
哈希表-同构字符串
给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。输入:s = "egg", t = "add"输出:true思路:利用index函数,遍历长度,判断是否一致...原创 2021-09-09 11:15:53 · 131 阅读 · 0 评论 -
哈希表-两数之和,最优解
输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。思路:注意到方法一的时间复杂度较高的原因是寻找 target - x 的时间复杂度过高。因此,我们需要一种更优秀的方法,能够快速寻找数组中是否存在目标元素。如果存在,我们需要找出它的索引。使用哈希表,可以将寻找 target - x 的时间复杂度降低到从 O(N)O(N)O(N) 降低到 O(1)O(1)O(1)。这样我们创建一个哈希原创 2021-09-09 10:46:37 · 385 阅读 · 0 评论 -
哈希表-两个数组的交集
思路:把两个列表转成集合,然后利用集合求交集原创 2021-09-09 10:12:31 · 226 阅读 · 0 评论 -
存在重复元素 II
问题:给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。思路:利用哈希表,首先新建一个字典,然后通过判断这个索引在字典内,然后找到这个祥同志的另外一个索引只有相减是否小于等于Kclass Solution: def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool: dict =转载 2020-09-15 19:17:26 · 157 阅读 · 0 评论 -
字符串的第一个不重复数字的索引
问题:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。解题思路:先统计每个字符串里数字的count,然后利用enumerate函数的特性,找到它的索引class Solution: def firstUniqChar(self, s: str) -> int: """ :type s: str :rtype: int """ # build hash map : chara转载 2020-09-15 19:02:46 · 252 阅读 · 0 评论 -
同构字符串的
解题思路:利用哈希表,将两个列表变成一个字典,一一对应在这里插入代码片class Solution: def isIsomorphic(self, s: str, t: str) -> bool: hashmap={} for i,j in zip(s,t): if i in hashmap and hashmap[i]!=j:#有两种情况,如果是同构,构成的字典,肯定是一一对应的 return Fal原创 2020-09-14 21:28:33 · 116 阅读 · 0 评论 -
只出现一次的数字---python解题思路---排序,位运算
方法1:Counter函数from collections import Counterclass Solution: def singleNumber(self, nums: List[int]) -> int: datas = Counter(nums) for each in datas: if datas[each] == 1: return each方法4:通过数学的方式先通过set把数据转载 2020-09-14 20:10:50 · 286 阅读 · 0 评论 -
哈希表有关的算法
给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例1:输入: [1,2,3,1]输出: true1.集合法,判断原数组和去重后的数组是否相等class Solution: def containsDuplicate(self, nums: List[int]) -> bool: return len((set(nums))) != len(nums)1.哈希表原创 2020-09-14 19:56:28 · 132 阅读 · 0 评论