[LeetCode] 每日一题 368. 最大整除子集(dfs + 记忆化搜索)
本题要求找出一个最大整除子集。通过 DFS + 记忆化搜索加路径追踪数组,还原最长链路结构,高效且逻辑清晰
系统设计 | 利用心跳机制实现自动续期 —— 看门狗机制在注册中心中的应用
这几天在学习手写 RPC 项目,一开始服务注册的实现我只是使用 ConcurrentHashMap 在本地完成,随着功能的逐步完善,我对框架进行了扩展,抽象出了统一的 Registry 接口,作为注册中心的统一规范。后续只需要实现这个接口,即可灵活地接入不同的注册中心实现。 在实践过程中,我选择使用
[LeetCode] 每日一题 1863. 找出所有子集的异或总和再求和(递归法 | 数学推导法)
通过递归法和数学推导两种方法解决子集异或总和之和问题,递归暴力可行但效率低,数学解法则借助按位分析与组合数学,大幅优化复杂度
[LeetCode] 每日一题 1123. 最深叶节点的最近公共祖先(dfs + 递归)
本题要求返回最深叶节点的最近公共祖先。通过 DFS 递归记录最大深度,并在回溯时判断左右深度是否相等,巧妙找出目标节点
[LeetCode] 每日一题 2874. 有序三元组中的最大值 II(与昨天思路一致)
今天的题目和昨天一样,但数据范围变大了,使得暴力法不可行。我们可以用前后缀数组 O(n) 解决,也可以用贪心法 O(1) 优化空间
[LeetCode] 每日一题 2873. 有序三元组中的最大值 I(前后缀数组 + 贪心优化)
这道题要求找到最大 (i, j, k) 组合,使 (nums[i] - nums[j]) * nums[k] 最大化。先用前后缀数组优化到 O(n),再用贪心算法降低空间复杂度至 O(1),提升效率
[LeetCode] 每日一题 2140. 解决智力问题(dfs + 记忆化搜索)
这道题是典型的最优子序列问题,使用深度优先搜索 + 记忆化搜索优化计算,避免重复计算,提升效率。解题思路围绕两种选择:解决当前题或跳过,并通过递归找到最大得分。最终时间复杂度优化至 O(n)
[LeetCode] 每日一题 2278. 字母在字符串中的百分比(简单计数)
本题是一个简单的字符串统计问题,遍历 s 计算 letter 出现次数,然后计算百分比并向下取整。需要注意除零情况和整数除法的计算顺序,时间复杂度 O(n),空间复杂度 O(1)
[LeetCode] 每日一题 2109. 向字符串添加空格(双指针 + 字符串操作)
本题要求在字符串指定位置插入空格,采用 双指针 + StringBuilder 方案,避免数组插入操作的高开销,同时减少字符串对象创建,优化内存和性能,最终时间复杂度 O(n),适用于大规模字符串处理
[LeetCode] 每日一题 2360. 图中的最长环(dfs + 时间戳标记法)
本题要求找出有向图中的最长环,采用 时间戳标记法 记录节点访问时间,避免重复搜索。相比 DFS 直接搜索,本方法更高效,最终时间复杂度 O(n),适用于大规模数据