首页
学习
活动
专区
工具
TVP
发布

彭旭锐

专栏成员
81
文章
72761
阅读量
13
订阅数
LeetCode 周赛上分之旅 #49 再探内向基环树
为了使得计算结果尽可能大,显然应该让乘法的左右两部分尽可能大。对于存在多个变量的问题,一个重要的技巧是 「固定一个,思考另一个」 ,这就容易多了。
用户9995743
2023-10-04
2480
LeetCode 周赛上分之旅 #48 一道简单的树上动态规划问题
元素的集合,根据题意逆向遍历数组并从集合中移除元素,当集合为空时表示已经收集到所有元素,返回
用户9995743
2023-10-04
2450
LeetCode 周赛上分之旅 #46 经典二分答案与质因数分解
由于所有合金都需要由同一台机器制造,判断很简单,只需要先计算目标数量需要的每种金属的初始金属数是否足够,不足则花金钱购买。如果花费超过限制则不可制造。
用户9995743
2023-09-20
2820
LeetCode 周赛上分之旅 #45 精妙的 O(lgn) 扫描算法与树上 DP 问题
等价于众数的出现次数超过数组长度的一半,由于数组是有序的,那么一定有数组的中间位置就是众数,我们可以用二分查找找出众数在数组中出现位置的边界,从而计算出众数的出现次数。
用户9995743
2023-09-20
3160
LeetCode 周赛上分之旅 #44 同余前缀和问题与经典倍增 LCA 算法
时间复杂度的算法,而对于多次 LCA 操作可以使用 倍增算法 预处理以空间换时间,单次 LCA 操作的时间复杂度进位
用户9995743
2023-09-09
2690
LeetCode 周赛上分之旅 #43 计算机科学本质上是数学吗?
因为只能交换距离偶数倍的位置,因此相当于比较两个字符串相同奇偶性下标上的元素是否相等。
用户9995743
2023-09-09
2560
LeetCode 周赛上分之旅 #41 结合离散化的线性 DP 问题
从 1 开始从小到大枚举,如果当前元素 cur 与已选列表不冲突,则加入结果中。为了验证是否冲突,我们使用散列表在 O(1) 时间复杂度判断。
用户9995743
2023-09-09
2410
LeetCode 周赛上分之旅 #40 结合特征压缩的数位 DP 问题
在题解一中存在很多无意义的比较,我们观察到配对的顺序是无关的,因此可以考虑利用有序性优化时间复杂度。
用户9995743
2023-09-09
2170
LeetCode 周赛上分之旅 #34 按部就班地解决动态规划问题
先抽取元音字母排序,再填充到结果数组中,如果使用桶排序,可以优化时间复杂度到 O(n)。
用户9995743
2023-09-09
2370
Gradle 构建工具 #5 又冲突了!如何理解依赖冲突与版本决议?
在前文 Gradle 构建工具 #3 Maven 发布插件使用攻略(以 Nexus / Jitpack 为例) 和 Gradle 构建工具 #4 来开源吧!发布开源组件到 MavenCentral 仓库超详细攻略 文章中,我们已经讨论过如何发布组件到 Nexus 企业私有仓库或 MavenCentral 中央仓库的方法。
用户9995743
2023-09-09
5160
LeetCode 周赛上分之旅 #33 摩尔投票派上用场
事实上,当下标 i 可以被 n 整除时,那么有下标 n / i 也可以被 n 整除,因此我们只需要检查 [0, \sqrt(n)] 的范围。
用户9995743
2023-09-09
2490
数据结构与算法 #18 下跳棋,极富想象力的同向双指针模拟
这道题是 LeetCode 上的 1040. 移动石子直到连续 II,难度是 Meduium,难度分是 2455。虽然是 Medium 题,但是打 Hard 标签一点也不为过。长期作为中等题的难度 Top1,直到去年被 2289. 使数组按非递减顺序排列 题挤下来。
用户9995743
2023-09-09
1920
【LeetCode 周赛】看似没考 LIS 最长递增子序列,好像又考了
简单模拟题,在每一轮操作中可以将 num 加一,而对 x 减一,因此最大 x 就是 num + 2 * t。
用户9995743
2023-09-09
2370
【LeetCode 周赛】渐入佳境
在题解一中,我们会重复计算同一段交替子序列的,我们可以使用一次遍历,再交替子序列终止时避免重复回退到该子序列内部。需要注意的是,由于不同的交替子序列可能存在 1 位重叠,所以要把 i 指针指向 j 指针,而不是指向 j 指针的下一位,才能保证没有缺失。例如 [3,4,3,4,5,4,5] 数组,第一组交替子数组为 [3,4,3,4] 和第二组交替子数组为 [4,5,4,5] 这两组有重叠部分。
用户9995743
2023-09-09
2070
【LeetCode 周赛】一场关于子数组的专题周赛
容易想到的方法是枚举每个位置开始的子数组,并计算最长奇偶子数组长度,可以得到时间复杂度为 O(n^2) 的解法。
用户9995743
2023-09-09
2110
【LeetCode 周赛】滑动窗口与离散化模板题
题目说明所有字符串不相同,因此我们可以枚举每个字符串,检查其反转是否存在,模板类似于两数之和;
用户9995743
2023-09-09
2080
【LeetCode 周赛】很有意思的 T2 题
线性扫描数组,同时检查前驱中匹配的配对数。由于题目只考虑前驱数字的最高位和当前位置的最低位,我们可以维护前驱数字的最高位出现次数。
用户9995743
2023-09-09
2340
【LeetCode 周赛】一道 01 背包变型题
由于题目要求相邻元素之间至少存在单向整除关系,容易想到我们需要预处理数据,记录每个元素在作为 (x, y) 相邻对中的 x 时,下一个数 y 可以选择什么数,即从 x 到 y 存在单向边。
用户9995743
2023-09-09
2180
【LeetCode 周赛】两道思维题
当相邻重复对 repeatCnt 大于 1 时,此时需要收缩左指针,如果左指针与右边后一个位置相同,说明减少一个相邻重复对(由于 repeatCnt 大于 1 时左指针不可能超过窗口,所以不需要检查左指针移动越界)。
用户9995743
2023-09-09
1950
【LeetCode 周赛】数位 DP 模版学会了吗?
我们只需要考虑 1 和 n,每次操作可以把 1 向左边移动一位,或者将 n 向右移动一位,但是考虑到 1 和 n 的移动方向有交叉时,要减少一次操作次数。
用户9995743
2023-09-09
2360
点击加载更多
社区活动
AI代码助手快速上手训练营
鹅厂大牛带你玩转AI智能结对编程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档