算法/题库
文章平均质量分 55
主要是做题通过的部分简单的分享一下
不玩return的马可乐
编程小白,会发布一些自己做过的小作品和做过的题,共同进步
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
蓝桥村打花结的花纸选择问题
在这篇文章中,我们将探讨一个有趣的算法问题,这个问题涉及到中国传统手工艺——打花结。我们需要判断给定的矩形花纸是否可以通过折叠操作使其面积变为特定的值 X,从而适合用来打花结。原创 2025-01-27 10:41:06 · 370 阅读 · 0 评论 -
蓝桥村的糖果问题:最长递增子序列的妙用
这个问题是一个典型的最长递增子序列问题,通过计算最长递增子序列的长度,我们可以找到将糖果按升序排列所需的最小操作次数。这种方法不仅适用于糖果问题,还可以应用于其他需要排序和优化的场景。希望这篇文章能帮助你更好地理解最长递增子序列的应用。原创 2025-01-27 10:35:32 · 679 阅读 · 0 评论 -
LeetCode 2956. 找到两个数组中的公共元素
在本篇文章中,我们将探讨如何求解 LeetCode 上的 2956. 找到两个数组中的公共元素问题。这个问题要求我们找到两个数组中公共元素的出现次数,并分别计算这些公共元素在各自数组中的出现次。原创 2025-01-24 22:36:14 · 833 阅读 · 0 评论 -
LeetCode 1561. 你可以获得的最大硬币数目
这个问题可以通过贪心算法解决,关键在于理解每轮选择的策略和如何最大化你的收益。通过排序和从后向前选择硬币堆,我们可以确保每次都能获得第二大的硬币堆,从而最大化你的总收益。这种方法简单且高效,适用于类似问题的解决。原创 2025-01-23 11:28:57 · 425 阅读 · 0 评论 -
LeetCode 221. 最大正方形
本题通过动态规划的方法,利用dp数组存储以每个点为右下角的最大正方形边长,从而找到最大正方形的边长,最终计算出面积。这种方法在处理类似问题时非常有效,关键在于正确定义状态和状态转移方程。原创 2025-01-23 11:26:05 · 537 阅读 · 0 评论 -
LeetCode 64. 最小路径和
通过动态规划,我们可以有效地计算出从网格的左上角到右下角的最小路径和。这种方法利用了状态转移方程和边界条件,避免了重复计算,提高了算法的效率。原创 2025-01-21 11:32:09 · 537 阅读 · 0 评论 -
LeetCode 62. 不同路径
通过动态规划,我们可以有效地计算出机器人在网格中从左上角到右下角的不同路径数量。这种方法利用了状态转移方程和边界条件,避免了重复计算,提高了算法的效率。原创 2025-01-21 11:28:59 · 552 阅读 · 0 评论 -
LeetCode 2239. 找到最接近 0 的数字
这个问题考察了我们对数组遍历和条件判断的理解。通过计算每个数字到0的距离,并在找到更小距离时更新结果,我们可以有效地解决这个问题。同时,当遇到多个数字具有相同最小距离时,我们还需要比较这些数字,以确保返回最大的那个。这种方法简单而有效,适用于解决类似问题。原创 2025-01-20 12:47:07 · 368 阅读 · 0 评论 -
LeetCode 383. 赎金信
在本篇博客中,我们将探讨LeetCode上的一个经典问题:383. 赎金信。这个问题考察了我们对字符串处理和字符计数的理解和应用。原创 2025-01-18 12:15:18 · 469 阅读 · 0 评论 -
蓝桥杯 连续奇数和问题解析
这个问题可以通过暴力搜索解决,即通过遍历所有可能的奇数序列,找到和等于111的立方的序列。然而,这种方法效率较低,我们需要寻找更优的解决方案。通过数学公式,我们可以直接计算出111的立方可以表示为连续奇数和的起始数字。希望这篇文章能帮助你更好地理解这个问题和解决方案。对于任意正整数 n,其立方 n3 可以表示为 n 个连续奇数的和。这个公式直接给出了连续奇数和的起始数字。原创 2025-01-18 12:09:26 · 836 阅读 · 0 评论 -
LeetCode 771. 宝石与石头
通过使用集合来存储宝石类型,我们可以高效地解决这个问题。这种方法不仅简洁,而且运行效率高,适合处理大量数据。希望这篇博客对你有所帮助!原创 2025-01-17 10:24:54 · 619 阅读 · 0 评论 -
LeeCode 1678. 设计 Goal 解析器
通过上述步骤,我们可以有效地设计一个 Goal 解析器来解释特定的字符串组合。这种方法不仅简洁,而且易于理解,适用于解决类似的问题。希望这篇博客对你有所帮助!原创 2025-01-17 10:20:53 · 895 阅读 · 0 评论 -
LeetCode 1773. 统计匹配检索规则的物品数量
首先,我们需要定义一个映射,将规则键("type"、"color"、"name")映射到物品数组中对应的索引(0、1、2)。原创 2025-01-16 10:24:23 · 400 阅读 · 0 评论 -
LeetCode 3280. 将日期转换为二进制表示
在这个问题中,我们需要将一个公历日期(格式为yyyy-mm-dd)转换为其二进制表示。具体来说,我们需要将年、月、日分别转换为二进制字符串,并按照的格式组合这些字符串。原创 2025-01-16 10:04:27 · 544 阅读 · 0 评论 -
LeetCode 2859. 计算 K 置位下标对应元素的和
在本篇文章中,我们将探讨如何求解 LeetCode 上的 2859. 计算 K 置位下标对应元素的和问题。这个问题要求我们找到一个数组中特定元素的和,这些特定元素的下标在二进制表示中恰好有k个置位。原创 2025-01-15 11:23:52 · 545 阅读 · 0 评论 -
LeetCode 2270. 分割数组的方案数
这个问题的关键在于理解如何通过一次遍历来确定所有可能的合法分割点。通过维护两个和suml和sumr,我们可以在不牺牲效率的情况下快速判断每个分割点的合法性。这种方法简单且高效,适用于处理此类问题。原创 2025-01-14 10:09:56 · 654 阅读 · 0 评论 -
LeeCode 3065. 超过阈值的最少操作数 I
这个问题的关键在于理解通过排序可以快速定位到需要删除的最小元素,并通过遍历数组来计算所需的最少操作次数。这种方法简单且高效,适用于处理此类问题。通过排序,我们可以确保在最坏情况下也能达到 O(n log n) 的时间复杂度,这对于大多数实际应用场景来说都是可接受的。原创 2025-01-14 10:04:09 · 442 阅读 · 0 评论 -
蓝桥杯 男女搭配
这个问题的关键在于如何高效地计算在特训结束后,剩余的男生和女生能组成多少个团队。计算剩余人数:首先,我们需要计算特训结束后剩余的男生和女生人数。这可以通过从总人数中减去特训人数K来实现。团队组建规则:根据团队组建规则,每个团队需要两名男生和一名女生。这意味着,如果男生或女生的剩余人数不足以满足这个比例,那么这些剩余的人数将无法全部用于组建团队。最大化团队数量:为了最大化团队数量,我们需要确保男生和女生的比例尽可能接近2:1。这可以通过比较剩余的男生和女生人数,然后根据较小的一方来确定可以组建的最大团队数量。原创 2025-01-12 12:11:35 · 956 阅读 · 0 评论 -
LeetCode 300. 最长递增子序列
通过贪心算法和二分查找的结合,我们能够有效地解决 LIS 问题,并将时间复杂度降低到 O(nlogn)O(nlogn)。在实际应用中,这种算法可以应用于各种需要找到最长递增子序列的场景,如生物信息学中的序列比对、金融领域的时间序列分析等。直观的动态规划方法虽然可以解决问题,但时间复杂度较高,为 O(n2)O(n2)。这里的“子序列”指的是在不改变其余元素顺序的情况下,通过删除(或不删除)数组中的元素得到的新序列。中的位置,从而在 O(nlogn)O(nlogn) 的时间内找到 LIS。原创 2025-01-05 12:27:07 · 1075 阅读 · 0 评论 -
LeeCode 1.两数之和
在本篇博客文章中,我们将探讨一个经典的算法问题——“两数之和”。这个问题是许多编程初学者在学习和面试中经常遇到的。它不仅考验了对算法的理解,还涉及到哈希表这一数据结构的应用。原创 2025-01-01 13:18:45 · 341 阅读 · 0 评论 -
LeeCode 49.字母异位词分组
在本篇文章中,我们将探讨一个常见的算法问题——字母异位词分组。这个问题要求我们给定一个字符串数组,将其中的字母异位词组合在一起。字母异位词是指通过重新排列源单词的所有字母得到的新单词。例如,"eat" 和 "tea" 就是一对字母异位词。原创 2025-01-01 12:18:34 · 542 阅读 · 0 评论 -
完全背包问题
完全背包问题是动态规划中的一个重要问题,通过合理地定义状态和状态转移方程,可以有效地解决此类问题。上述代码通过简洁的实现,展示了如何使用动态规划来求解完全背包问题。在实际应用中,完全背包问题的思想可以应用于资源分配、投资组合等多个领域,具有广泛的应用价值。原创 2025-01-01 09:19:04 · 758 阅读 · 0 评论
分享