
算法题题解
文章平均质量分 70
muzili-1
这个作者很懒,什么都没留下…
展开
-
Leetcode双周赛119总结
【代码】Leetcode双周赛119总结。原创 2023-12-11 14:37:38 · 59 阅读 · 0 评论 -
Leetcode周赛375总结
【代码】Leetcode周赛375总结。原创 2023-12-11 14:37:05 · 43 阅读 · 0 评论 -
Leetcode周赛373总结
设字串长度为L,需要满足 L^2 是 4k的倍数。哈希表统计(i%k’, sum[i])的出现次数。元音字母个数 = 辅音字母个数。前缀和处理子数组元素和。原创 2023-12-05 15:03:18 · 62 阅读 · 0 评论 -
Leetcode周赛374总结
假设当前可以表示[0, s-1]范围中的数,新来了一个数x,可以新表示的范围是[x, s+x-1]时间复杂度:O(nlogn + log target)原创 2023-12-04 12:16:12 · 60 阅读 · 0 评论 -
Leetcode周赛371总结
分别检查对于前面的元素最少需要交换多少次(能不换就不换)原创 2023-11-15 12:07:37 · 64 阅读 · 0 评论 -
Leetcode双周赛117总结
最终答案 = 总方案数 - 至少满足一个条件 + 至少满足两个条件 - 满足三个条件。总共有26 ^ n个字符串,减去不含leet的字符串个数。满足三个条件:23^n + n * 23^(n-1)同样可以使用容斥原理。原创 2023-11-15 11:10:31 · 79 阅读 · 0 评论 -
Leetcode双周赛116总结
先写记忆化搜索,定义dfs(i, j),表示[0, i]的子数组中,和为j的最长子序列长度。递归入口:dfs(n-1, target)相似题目:LC2262. 字符串的总引力。原创 2023-11-07 11:57:40 · 66 阅读 · 0 评论 -
Leetcode周赛370总结
f[i] = max(max(f[j], 0)) + nums[i],j满足 j < i 且 b[j] <= b[i]定义b[i] = nums[i] - i,问题变成从b中选出一个非降子序列,求对应的nums的元素和的最大值。定义f[i]表示子序列最后一个数的下标是i时,对应的nums的元素和的最大值,答案会是max(f)定义dfs(x, fa),表示从x节点(选取/未选取)开始遍历到根节点可以得到的最大分数。实现时需要将nums[i] - i 离散化,在使用树状数组 复制 + 排序 + 去重。原创 2023-11-06 16:22:39 · 62 阅读 · 0 评论 -
Leetcode周赛369总结
本题要注意的点是,各节点金币数最大为1e4,这意味着当cnt >= 14时,数中所有节点都会变为0,此时最大值只能是0,不用再向下搜索。定义dfs(i, fa, cnt),表示从fa经过cnt次第二种方法遍历到i节点,遍历以i节点为根节点的字数可以获得的最大积分。定义dfs(i, j),表示数组[0, i]位置,且右侧有j个小于k的数时,需要的最小运算数。递归入口:dfs(n-, 0)原创 2023-11-01 15:05:53 · 103 阅读 · 1 评论 -
Leetcode周赛368总结
由这两个式子可以解出 k1 + k2 的最小值,如果此时k1、k2均满足大于等于0,将k1 + k2累加到答案中。遍历完所有频数后,得到在一种拆分成d1、d2的方案下拆出的组数。最后的答案应该是所有拆分方案下拆出组数的最小值。递归入口: dfs(0, k)原创 2023-10-23 11:50:10 · 66 阅读 · 0 评论 -
Leetcode周赛367总结
赛后复盘可以只维护最大值和最小值的下标,不用同时维护最大值和最小值。原创 2023-10-16 14:31:43 · 78 阅读 · 1 评论 -
Leetcode周赛366总结
首先考虑什么情况下会返回-1,每次操作都是翻转两个不同下标的数,因此总会改变两个位置是否相等的状态;如果初始情况下s1 和 s2中不相同的位置数为奇数,那么永远无法变得相同,返回-1 (也可以参考灵神的讲解,由于一次翻转两个位置,所以字符串中1出现次数的奇偶性是不变的,如果初始状态下两个字符串中1出现次数的奇偶性不同,直接返回-1)定义dfs(i, j):i表示考虑第i个位置不同,j表示在先前的过程中是否有位置使用了操作1进行翻转(0:没有, 1:有),其返回值就是所需的最小代价。一种错误思路:直接贪心。原创 2023-10-08 16:02:43 · 144 阅读 · 1 评论 -
Leetcode周赛365总结
【代码】Leetcode周赛365总结。原创 2023-10-05 20:40:32 · 97 阅读 · 0 评论 -
Leetcode双周赛114总结
【代码】Leetcode双周赛114总结。原创 2023-10-04 16:54:23 · 91 阅读 · 1 评论 -
Leetcode801. 使序列递增的最小交换次数
令a1 = nums1[i-1], a2 = nums1[i], b1 = nums2[i-1], b2 = nums2[i]当上述两点同时满足时,取其中更小值。初刷时间:2023.9.27。只需要考虑相邻元素的大小关系。原创 2023-09-27 10:51:21 · 56 阅读 · 0 评论 -
Leetcode周赛364总结
这里的dfs,可以用记忆化搜索优化,考虑dfs(x, fa)先用埃式筛把[1, n]范围内的质数筛出来。解题代码: (TLE 921/922)解题思路(赛时错误思路)原创 2023-09-25 09:51:24 · 121 阅读 · 1 评论 -
Leetcode146.LRU缓存
初刷时间:2023.9.25。原创 2023-09-25 09:41:27 · 54 阅读 · 1 评论 -
Leetcode1131. 绝对值表达式的最大值
初刷时间:2023.9.22。原创 2023-09-22 16:30:54 · 88 阅读 · 1 评论 -
Leetcode2508.添加边使所有节点度数都为偶数
如果是4个,则将这4个点两两组合共有3种组合方法,分别检查各边在不在集合中,只有两条边均不在时返回true。如果是2个,则可能存在两种连接情况。初刷时间:2023.9.22。其余情况都返回false。原创 2023-09-22 16:25:53 · 82 阅读 · 1 评论