
哈希表
文章平均质量分 53
哈希表
可惜我是水瓶座__
这个作者很懒,什么都没留下…
展开
-
【LeetCode】删除排序链表中的重复元素 II
给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字。返回 已排序的链表。输入:head = [1,2,3,3,4,4,5]先遍历一边链表,利用哈希表记录每个数字出现了多少次。输入:head = [1,1,1,2,3]链表中节点数目在范围 [0, 300] 内。然后再遍历一边,跳过哪些所有出现次数超过。题目数据保证链表已经按升序 排列。输出:[1,2,5]原创 2024-07-17 22:15:37 · 315 阅读 · 0 评论 -
【LeetCode】随机链表的复制
新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]输入:head = [[3,null],[3,0],[3,null]]原创 2024-07-16 22:24:24 · 306 阅读 · 0 评论 -
【LeetCode】存在重复元素 II
给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k。否则,返回 false。既然限制了abs(i - j) <= k,那么,首先想到的应该是滑动窗口,来限制数的范围,然后使用哈希表来,检查是否有相同的元素出现。输入:nums = [1,2,3,1,2,3], k = 2。输入:nums = [1,2,3,1], k = 3。输入:nums = [1,0,1,1], k = 1。原创 2024-07-11 21:43:40 · 410 阅读 · 0 评论 -
【LeetCode】两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。输入:nums = [3,3], target = 6。原创 2024-07-11 21:11:16 · 280 阅读 · 0 评论 -
【LeetCode】字母异位词分组
输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。可以将每个单词,排一下序,然后相同排序的单词放到一起,最后,将每个。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。输入: strs = [“a”]输入: strs = [“”]输出: [[“a”]]输出: [[“”]]原创 2024-07-10 21:56:25 · 340 阅读 · 0 评论 -
【LeetCode】单词规律
这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。输入: pattern = “abba”, s = “dog cat cat dog”输入:pattern = “abba”, s = “dog cat cat fish”输入: pattern = “aaaa”, s = “dog cat cat dog”给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。s 只包含小写英文字母和 ’ ’原创 2024-07-10 21:53:32 · 383 阅读 · 0 评论 -
【LeetCode】赎金信
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。输入:ransomNote = “aa”, magazine = “aab”输入:ransomNote = “aa”, magazine = “ab”输入:ransomNote = “a”, magazine = “b”如果可以,返回 true;否则返回 false。利用哈希表,同时遍历两个字符串,记录字母出现的次数【遍历完了,而且字母对应的位置大于等于。原创 2024-07-09 20:03:31 · 253 阅读 · 0 评论 -
【LeetCode】O(1) 时间插入、删除和获取随机元素
int getRandom() 随机返回现有集合中的一项(测试用例保证调用此方法时集合中至少存在一个元素)。bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true;bool remove(int val) 当元素 val 存在时,从集合中移除该项,并返回 true;// 由于 2 是集合中唯一的数字,getRandom 总是返回 2。集合现在包含 [2]。// 返回 false ,表示集合中不存在 2。// 2 已在集合中,所以返回 false。原创 2024-06-27 09:58:28 · 1238 阅读 · 0 评论 -
【LeetCode】和为 K 的子数组
给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数。因此我们可以把遇到的前缀和放到一个哈希表里,key存储前缀和本身,value存出现的次数。输入:nums = [1,1,1], k = 2。输入:nums = [1,2,3], k = 3。子数组是数组中元素的连续非空序列。注意,为了同一操作,前缀和为。,类似于dummy头节点。原创 2024-06-06 16:20:45 · 218 阅读 · 0 评论