- 博客(199)
- 收藏
- 关注
原创 # LeetCode 2140: 解决智力问题
这道题是一个经典的动态规划问题,关键在于理解每个问题有两个选择(解决或跳过),并且找出状态转移关系。无论是使用自顶向下的记忆化搜索,还是自底向上的动态规划,都能有效地解决这个问题。记忆化搜索的方法更加直观,而传统动态规划的方法在某些情况下可能更加高效。两种方法的时间复杂度和空间复杂度相同,都是 O(n)。博客已创建成功!这篇文章详细解析了力扣第2140题"解决智力问题",包含以下内容:- 题目描述和示例- 两种解题方法:记忆化搜索和动态规划- 时间复杂度和空间复杂度分析- 总结与比较。
2025-04-01 09:00:23
295
原创 解题思路:LeetCode 2711. 对角线上不同值的数量差
通过预处理对角线上的不同值数量,我们可以显著减少重复计算,从而优化算法的时间复杂度。优化后的算法在处理大规模矩阵时更加高效,同时保持了代码的简洁性。希望这篇博客能帮助你更好地理解和解决这个问题。
2025-03-25 10:24:06
264
原创 LeetCode 2711:对角线上不同值的数量差解题思路与优化方法
通过预处理对角线上的不同值数量,我们可以显著减少重复计算,从而优化算法的时间复杂度。优化后的算法在处理大规模矩阵时更加高效,同时保持了代码的简洁性。希望这篇博客能帮助你更好地理解和解决这个问题。
2025-03-25 09:09:10
489
原创 LeetCode 1092:最短公共超序列
从朴素递归到记忆化搜索,再到动态规划,我们逐步优化了时间和空间复杂度。这道题的关键在于理解子问题递归关系,并通过 DP 高效构造答案。希望这篇博客能帮助你掌握双序列动态规划的思考过程!
2025-03-24 13:46:13
944
原创 LeetCode 2255:统计是给定字符串前缀的字符串数目
是一道简单题。题目要求我们在一个字符串数组words中,统计有多少个字符串是给定字符串s的前缀。
2025-03-24 13:45:33
569
原创 2680. 最大或值
本题主要利用了位运算和前后缀分解预处理技巧,实现高效的计算。贪心思想确保了算法的正确性,前后缀技巧保证了算法高效性。类似的前后缀处理技巧在很多场景下都非常有用,值得掌握。掌握以上方法后,可尝试进一步优化,如实现空间复杂度为O(1)的算法,以更深刻理解此题。
2025-03-21 10:44:37
332
原创 LeetCode 2610. 转换二维数组
本题的关键在于如何通过Counter统计每个数字的频次,然后通过动态构建每一行来满足题目要求。通过不断选择可以放置在同一行的不同元素,我们可以实现尽可能少的行数,从而得到一个符合条件的二维数组。
2025-03-19 14:10:35
550
原创 LeetCode 1105. 填充书架
本题的关键在于动态规划的设计,如何利用dp[i]记录前i本书的最小高度,并通过状态转移更新最优解。通过不断尝试不同的层数和放置方式,可以得到最小的书架高度。
2025-03-19 14:08:53
336
原创 最大整除子集
整除子集是指子集中的每一对 (i, j) 满足 nums[i] % nums[j] == 0 或 nums[j] % nums[i] == 0。给定一个字符串 s,计算该字符串的分数,定义为相邻字符的 ASCII 码差值的绝对值之和。动态规划:我们维护一个 f 数组,表示以 nums[i] 作为结尾的最大整除子集的大小,并通过 g 数组记录每个元素的前驱索引。回溯:遍历 f 数组,找到最大的子集长度,并通过 g 数组回溯得到子集的元素。时间复杂度:O(n),其中 n 是字符串的长度,遍历一次字符串即可。
2025-03-15 13:34:58
310
原创 动态规划与字符串处理
整除子集是指子集中的每一对 (i, j) 满足 nums[i] % nums[j] == 0 或 nums[j] % nums[i] == 0。给定一个字符串 s,计算该字符串的分数,定义为相邻字符的 ASCII 码差值的绝对值之和。动态规划:我们维护一个 f 数组,表示以 nums[i] 作为结尾的最大整除子集的大小,并通过 g 数组记录每个元素的前驱索引。回溯:遍历 f 数组,找到最大的子集长度,并通过 g 数组回溯得到子集的元素。时间复杂度:O(n),其中 n 是字符串的长度,遍历一次字符串即可。
2025-03-15 13:33:19
629
原创 深入理解 RESTful API 设计与实践
首先,需要明确 API 中的资源。用户(User)文章(Article)评论(Comment)RESTful API 是一种基于 HTTP 的架构风格,提供清晰的资源 URL和HTTP 方法进行交互。设计 RESTful API 时应遵循 REST 原则,包括资源、统一接口、无状态、可缓存、分层架构。API 需要保证安全性,使用身份验证、权限控制和 HTTPS。RESTful API 广泛应用于 Web 开发、移动开发、微服务架构。
2025-03-14 09:26:59
734
原创 最长递增子序列的个数(Number of Longest Increasing Subsequences)
本题核心:基于动态规划解决最长递增子序列问题,并额外维护count数组统计 LIS 个数。状态转移方程:基于dp[i]的变化更新count[i]。时间复杂度On2O(n^2)On2,但可以使用更高级的数据结构优化。这道题考察了动态规划的细节处理,尤其是如何统计方案个数,是面试中的高频题目。希望这篇博客能帮助你理解和掌握这个动态规划题目!
2025-03-14 09:26:27
396
原创 滑动窗口与双指针总结与题解
(‘a’, ‘e’, ‘i’, ‘o’, ‘u’)至少一次,并且。滑动窗口是一种用于数组和字符串问题的优化技术,适用于。
2025-03-12 10:08:45
967
原创 数组美丽值求和 (Leetcode 2012)
暴力解法时间复杂度O(n^2),不可行。通过前缀最大值和后缀最小值优化,时间复杂度降至O(n)。该方法适用于需要动态查询区间最大/最小值的问题。
2025-03-11 14:55:49
377
1
原创 TensorFlow 的基本概念和使用场景
TensorFlow 作为强大的深度学习框架,提供了高效的计算图机制、自动微分支持,并在计算机视觉、自然语言处理、强化学习等领域有广泛应用。无论是研究者还是工程师,都可以利用 TensorFlow 进行高效的深度学习开发。希望本篇文章能帮助你更好地理解 TensorFlow 的基本概念和使用场景!
2025-03-11 14:15:23
1129
1
原创 Python 字符串切片
在 Python 中,字符串是不可变的序列,我们可以使用**切片(slicing)**操作提取子字符串。统计满足条件的子串个数。的子字符串,并统计其中能整除。提取子字符串,并结合。,适用于大多数情况。
2025-03-10 13:22:33
293
1
原创 Python 动态规划(DP)套路总结
首先,需要定义一个或多个状态,表示每个子问题的结果。dp[i]表示前 i 个元素的最大和或最小值dp[i][j]表示在第 i 个位置选择了 j 种操作后的最优解对于某些题目,可能需要额外记录其他信息,如最大或最小值、索引等。dp[i][0]:表示到第i个元素为止,不删除任何元素时的最大和。dp[i][1]:表示到第i个元素为止,删除一个元素后的最大和。动态规划(DP)是解决子问题最优解的强大工具。在此题中,我们利用了动态规划的状态定义和转移方程来解决删除一次元素后的子数组最大和问题。
2025-03-09 20:46:28
1261
原创 Python 中 `sort()` 和 `sorted()` 的用法与区别
sort()和sorted()都是用来排序的工具,前者是原地排序,后者返回新排序的列表。sort()适用于需要修改原始数据的情况,而sorted()适用于需要保留原数据并得到排序结果的情况。对于这道题,通过排序物品和查询,并通过增量处理来实现高效的查询答案。
2025-03-09 20:21:20
613
原创 利用前缀异或和解决区间异或查询问题
通过前缀异或和技巧,我们可以高效地解决区间异或查询问题。前缀异或和不仅能够加速查询过程,还能应用于其他类似的问题,值得在处理数组区间问题时进行考虑。# Step 1: 构造前缀异或和n=len(arr)res=[]# Step 2: 计算每个查询结果return res# 利用前缀异或和计算区间 [l, r] 的异或值这道题类似于构建前缀和,这里可以用的是异或前缀和。
2025-03-08 12:31:34
873
原创 2234. 花园的最大总美丽值 - 题解
通过上述优化,我们能够高效地计算出最多能达到的总美丽值。算法充分利用了前缀和与贪心策略,保证了时间复杂度的优化。对于大数据量的输入,也能高效运行。
2025-03-08 12:30:56
738
原创 美丽子集的数目
该方法利用回溯枚举所有可能的子集,并通过cnt哈希表剪枝,保证子集是美丽的。由于的上限较小(最多 18),该解法在实际运行中是可行的。本题属于典型的子集回溯问题,可以作为类似问题的参考。
2025-03-07 13:39:18
701
原创 LeetCode 560 & 303:前缀和思想解析**
掌握这个技巧,你将更轻松地应对数组子区间和相关问题!记录前缀和,快速查找。这道题的关键点是利用。
2025-03-06 10:43:55
334
原创 LeetCode 2588: 统计美丽子数组数目
给你一个下标从 0 开始的整数数组nums。ijknums[i]nums[j]knums[i]nums[j]2^k如果一个子数组内执行上述操作若干次后,该子数组可以变成一个全为0的数组,那么我们称它是一个。请你返回数组nums中的数目。
2025-03-06 10:42:24
459
原创 破坏回文串(Greedy)| 类比数字排序 | Python 解法解析
✅如果字符串中有非'a',修改最左边的非'a'为'a',保证字典序最小。✅如果字符串全是'a',修改最后一个'a'为'b',仍然最小但确保非回文。✅这与数字排序类似,优先修改高位保证整体字典序最小。希望这篇博客对你有所帮助!如果有任何问题或优化方案,欢迎讨论!🎯🚀。
2025-03-05 17:23:44
434
原创 设计有序流:OrderedStream 类
通过实现类,我们能够模拟一个流式数据结构,并在多个插入操作后按照 id 的顺序返回数据。该问题的关键是有效管理指针ptr,并确保我们能够高效地返回按顺序排列的值。
2025-03-05 17:20:23
834
原创 132. 分割回文串 II | 最少分割次数
暴力回溯只能用于求所有划分方案,但无法高效求最优解。动态规划(DP)是最优解,预处理回文后,可以在O(n^2)时间内求解最少分割次数。预处理可以减少重复计算,提升性能。📌动态规划是求解最少分割次数的最佳方法!
2025-03-02 20:29:14
329
原创 摆动序列问题解析与解法
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。是摆动序列,因为其差值为 (6, -3, 5, -7, 3),这是一组正负交替出现的数列。先是一个正差(上升),然后是负差(下降),再然后是正差(上升),以此类推。如果两个相邻元素相等,则无法定义为上升或下降。这个问题可以通过动态规划思想来解决,保持记录当前上升和下降的序列长度,然后根据当前元素的大小更新状态。通过这种方式,我们能够在O(n)时间内找到最优解。同时,我们也避免了使用额外的二维数组,从而降低了空间复杂度。
2025-03-01 03:20:51
422
原创 利用动态规划解决“买卖股票的最佳时机 III:带冷冻期”的问题
通过使用动态规划和记忆化递归,我们可以高效地求解“买卖股票的最佳时机含冷冻期”问题。无论是使用标准动态规划、DFS方法,还是空间优化,选择适合的算法可以让我们根据不同需求实现最佳解决方案。希望这个解法能够帮你深入理解该类问题的求解方式,并提升你的算法技能!#这里相对于买卖股票的最佳时机 II的区别是如果你卖出股票,那么你第二天无法买入@cacheif i<0:if hold:#因为我现在是持有的状态,意味着我买入了,那么我前一个状态肯定不能卖出,前一个状态只能保持原状,也就是不操作即为保持原状。
2025-02-28 01:30:00
255
原创 1472.设计浏览器历史记录
visit 就是清空之前访问过的历史记录,把当前的放进去。self.cur+=1代表进下一个访问。然后删掉 当前的和之前的,加入新的。用一个列表来存储浏览器的历史记录。cur指向当前浏览器记录的位置。这里是模拟浏览器的回退和前进。前进和回退要考虑边界。
2025-02-26 18:52:37
264
原创 设计有序流:OrderedStream 类
通过实现类,我们能够模拟一个流式数据结构,并在多个插入操作后按照 id 的顺序返回数据。该问题的关键是有效管理指针ptr,并确保我们能够高效地返回按顺序排列的值。
2025-02-24 09:17:10
808
原创 DP算法问题写这些题就够了 198. 打家劫舍II 【第二题】
在本问题中,由于房屋是围成一圈的,因此我们需要将问题转化为两种情况来考虑:一种是偷第一个房屋,一种是偷最后一个房屋。通过动态规划来求解每种情况的最大偷窃金额,最终返回两种情况的最大值。通过优化空间复杂度,我们能够进一步提高代码的效率。
2025-02-24 00:30:00
1117
原创 DP算法问题写这些题就够了 123. 买卖股票的最佳时机 III【第三题】
在本问题中,由于房屋是围成一圈的,因此我们需要将问题转化为两种情况来考虑:一种是偷第一个房屋,一种是偷最后一个房屋。通过动态规划来求解每种情况的最大偷窃金额,最终返回两种情况的最大值。通过优化空间复杂度,我们能够进一步提高代码的效率。
2025-02-23 14:31:35
421
原创 DP算法问题写这些题就够了 198. 打家劫舍 【第一题】
通过动态规划的方式,我们可以有效解决这个问题,利用dp数组记录每个房屋的最大偷窃金额,最终得到整个问题的解。通过状态转移方程,我们可以轻松地计算出最优解。
2025-02-23 14:31:04
506
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人