- 博客(8)
- 收藏
- 关注
原创 Leetcode721.账户合并
为了使用并查集实现账户合并,需要知道一共有多少个不同的邮箱地址,以及每个邮箱对应的名称,因此需要使用两个哈希表分别记录每个邮箱对应的编号和每个邮箱对应的名称,遍历所有的账户并在两个哈希表中记录相应的信息。对于每个合并后的账户,需要整理出题目要求的返回账户的格式,具体做法是:将邮箱地址排序,账户的名称可以通过在哈希表中查找任意一个邮箱对应的名称得到,将名称和排序后的邮箱地址整理成一个账户列表。由于同一个账户中的邮箱地址一定属于同一个人,因此遍历每个账户,对账户中的邮箱地址进行合并操作。
2024-07-15 14:12:48
604
原创 腾讯音乐2023笔试:可爱串
我们定义子序列为字符串中可以不连续的一段,而子串则必须连续。例如 rderd 包含子序列 "red”,且不包含子串"red”,因此该字符串为可爱串。f[i]:包含 “red” 子序列但不包含 “red” 子串的数量。g[i]:包含 “re” 子序列但不包含 “red” 子串的数量。f[i] 表示长度为 i 的包含 “red” 子序列的数量。g[i] 表示长度为 i 的包含 “re” 子序列的数量。h[i] 表示长度为 i 的包含 “red” 子串的数量。h[i]:包含 “red” 子串的数量。
2024-07-04 20:00:13
1043
原创 LeetCode21. 合并两个有序链表
然后,我们重复以下过程,直到 l1 或者 l2 指向了 null :如果 l1 当前节点的值小于等于 l2 ,我们就把 l1 当前的节点接在 prev 节点的后面同时将 l1 指针往后移一位。由于输入的两个链表都是有序的,所以不管哪个链表是非空的,它包含的所有元素都比前面已经合并链表中的所有元素都要大。这意味着我们只需要简单地将非空链表接在合并链表的后面,并返回合并链表即可。否则,我们要判断 l1 和 l2 哪一个链表的头节点的值更小,然后递归地决定下一个添加到结果里的节点。将两个升序链表合并为一个新的。
2024-07-04 17:09:33
632
原创 LeetCode238.除自身以外数组的乘积
从下面的图可以看出,当前位置的结果就是它左部分的乘积再乘以它右部分的乘积。因此需要进行两次遍历,第一次遍历用于求左部分的乘积,第二次遍历在求右部分的乘积的同时,再将最后的计算结果一起求出来(乘积之前都需设置第一个为1)。给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。分别迭代计算下三角和上三角两部分的乘积,即可不使用除法就获得结果。组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。
2024-07-03 16:39:47
482
原创 LeetCode3099. 哈沙德数
给你一个整数 x。如果 x 是 哈沙德数 ,则。如果一个整数能够被其各个数位上的数字之和整除,则称之为。已知提示所给的范围,划分范围后求解,笨方法。
2024-07-03 10:11:23
401
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人