随笔分类 - 数据结构与算法 / 哈希算法 / 哈希表
摘要:1.题目 题目地址(706. 设计哈希映射 - 力扣(LeetCode)) https://leetcode.cn/problems/design-hashmap/ 题目描述 不使用任何内建的哈希表库设计一个哈希映射(HashMap)。 实现 MyHashMap 类: MyHashMap() 用空映
阅读全文
摘要:1.题目介绍 题目地址(697. 数组的度 - 力扣(LeetCode)) https://leetcode.cn/problems/degree-of-an-array/ 题目描述 给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值。 你的任务是在
阅读全文
摘要:1.题目介绍 题目地址(645. 错误的集合 - 力扣(LeetCode)) https://leetcode.cn/problems/set-mismatch/ 题目描述 集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致
阅读全文
摘要:1.题目介绍 A-B 数对 题目背景 出题是一件痛苦的事情! 相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈! 题目描述 给出一串正整数数列以及一个正整数 ,要求计算出所有满足 的数对的个数(不同位置的数字
阅读全文
摘要:1.题目介绍 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums = [1,2,0] 输出:3 示例 2: 输入:nums = [3,4,-1,1] 输出:2 示例 3: 输入
阅读全文
摘要:1.题目介绍 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums = [1,1,1], k = 2 输出:2 示例 2: 输入:nums = [1,2,3], k = 3 输出:2 提示:
阅读全文
摘要:1.题目介绍 给定一个链表的头节点 ,返回链表开始入环的第一个节点。 如果链表无环,则返回 。 如果链表中有某个节点,可以通过连续跟踪 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 来表示链表尾连接到
阅读全文
摘要:1.题目介绍 给定一个未排序的整数数组 ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 的算法解决此问题。 示例 1: 输入:nums = [100,4,200,1,3,2] 输出:4 解释:最长数字连续序列是 [1,
阅读全文
摘要:1.题目介绍 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [["bat"]
阅读全文
摘要:1.题目介绍 给定两个字符串 和 ,判断它们是否是同构的。 如果 中的字符可以按某种映射关系替换得到 ,那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符
阅读全文
摘要:1.题目介绍 给你一个链表的头节点 ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:\(pos\
阅读全文
摘要:1.题目介绍 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:
阅读全文
摘要:1.题目介绍 2.题解 2.1 方法一:哈希统计 思路与算法 假设当前给定元组 (a,b,c,d)(a,b,c,d)(a,b,c,d) 满足 a×b=c×d,且此时满足 a≠b≠c≠d,则可以知道该元组可以按照不同顺序组合,组成 8 个不同的元组, 且这个8个元组均满足题目要求: (a,b,c,d)
阅读全文
摘要:1.题目介绍 2.题解 2.1 快排+遍历 思路 同本系列前几题一样 代码 class Solution { public: std::vector<int> singleNumber(std::vector<int>& nums) { int count = 0; std::vector<int>
阅读全文
摘要:1.题目介绍 2.题解 2.1 哈希表 思路 同本系列题I,不过多赘述 代码 class Solution { public: int singleNumber(std::vector<int>& nums) { std::unordered_map<int,int> map; for (int n
阅读全文
摘要:1.题目简介 2.题解 本题思路参考了某位大大的题解,链接:https://leetcode.cn/problems/single-number/solutions/5118/xue-suan-fa-jie-guo-xiang-dui-yu-guo-cheng-bu-na-y/ 2.1 数组/哈希表
阅读全文
摘要:键值对在内存中的存储方式取决于具体的数据结构和编程语言。通常,有两种主要的数据结构用于存储键值对:数组(或列表)和哈希表。以下是它们的工作原理: 1.数组(或列表)存储键值对: 如果键值对存储在数组中,通常有两数组,一个用于存储键(通常是整数或字符串),另一个用于存储值(可以是任何数据类型)。 数组
阅读全文
摘要:1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums
阅读全文