- 博客(1507)
- 收藏
- 关注
原创 865. 具有所有最深节点的最小子树
树的“深度”从根节点开始计数。根节点深度为 0,它的子节点深度为 1,以此类推。最深节点指的是那些深度值最大的节点,可能有一个,也可能有多个。3/ \5 1/ \6 896和9(深度为 3)。我们要找的最小子树,就是它们的最近公共祖先——即根节点 3。这道题考察了二叉树的递归遍历技巧,同时还融入了最近公共祖先的思路,是一道综合性很强的中等题。
2025-05-31 03:30:00
279
原创 863. 二叉树中所有距离为 K 的结点
给定一个二叉树的根节点 ,一个树中的目标节点 ,以及一个整数 ,请返回所有与目标节点距离为 的节点值组成的列表。返回结果可以按任意顺序排列。给定如下二叉树: 返回结果为:从目标节点 出发,我们可以向它的左子树、右子树以及“父节点”方向扩展。问题在于,普通的二叉树节点并没有“父指针”,这限制了我们无法向上遍历。为了解决这个问题,我们可以分为两个步骤:我们使用 DFS 来构建父指针映射,使用 BFS 来寻找距离为 的节点。📈 复杂度分析 类型复杂度时
2025-05-31 03:15:00
231
原创 861. 翻转矩阵后的得分
因为每一位的贡献是确定的(按位权),我们可以通过贪心手段保证每一位上的1数量尽可能多,从而达到最优总和。不需要尝试所有可能的翻转组合(指数级),大大减少计算量。这道题是典型的贪心策略在矩阵优化问题中的运用示例,它要求我们理解二进制在数值中的权重分布,并利用可控操作逐步逼近最大化目标。如果你正在练习 LeetCode 的中等或稍难难度题,这题非常值得深入掌握,不仅可以锻炼你的贪心策略思维,也能训练你对矩阵操作的掌控能力。如有建议、优化思路或其他变种题,欢迎留言交流!🎯。
2025-05-31 03:00:00
176
原创 858. 镜面反射
计算最小公倍数 LCM(p, q)。根据m和n的奇偶性,判断最终落点位置,对应哪个接收器编号。物理建模能力(如何将反射变为直线延伸)数学思维(最小公倍数与奇偶性判断)空间想象与坐标映射掌握“镜像延拓”的技巧后,你可以轻松应对类似涉及反射/对称的几何题。希望这篇博客能帮你彻底吃透这道经典几何题!
2025-05-31 02:45:00
604
原创 856. 括号的分数
题目“括号字符串分数”是一个非常经典的数据结构与算法结合题,涉及栈、递归、位运算等多种实现方法。熟练掌握栈的操作;理解结构嵌套与递归表达的对应关系;训练对括号匹配、深度计数等技巧的运用。
2025-05-31 02:30:00
265
原创 855. 考场就座
构造函数,初始化一个有n个座位的考场。seat():返回下一个学生入座的座位编号。leave(p):表示坐在p的学生离开。如何合理使用数据结构(列表、有序集合)如何模拟现实世界场景并抽象成算法对最远距离策略的深入理解和实现📚扩展建议想进一步优化?可以考虑用最大堆(优先队列)+ 区间管理实现O(log n)的超级优化解法,适合面试中的进阶提问。
2025-05-31 02:15:00
421
原创 853. 车队
本题通过排序、计算到达时间以及判断车队的合并条件,得出最终的车队数量。通过有效地利用排序和时间计算,我们能够高效地解决问题,时间复杂度保持在 O(nlogn),适合处理较大的输入数据。
2025-05-31 02:00:00
872
原创 851. 喧闹和富有
通过拓扑排序或 DFS 的方法,我们可以高效地解决“找出每个人最安静的人的问题”。无论是拓扑排序方法还是 DFS 方法,最终的时间复杂度和空间复杂度都是。
2025-05-31 01:45:00
391
原创 849. 到最近的人的最大距离
这个问题是一个典型的动态规划问题,通过两次线性扫描来解决。我们通过计算每个空座位到左右两侧最近坐着人的距离,并取最小值,再找到最大值来解决问题。这个方法非常高效,时间和空间复杂度都是线性的,适用于大规模的输入。
2025-05-31 01:30:00
354
原创 848. 字母移位
本题考察了如何处理字符串字符的移位操作,特别是如何优化移位次数的计算。通过从后向前遍历,逐步累加移位次数,并结合模 26 运算处理字母表环绕问题,我们能够高效地解决问题。该解法时间复杂度 O(n),空间复杂度 O(n),适用于大规模输入。
2025-05-31 01:15:00
182
原创 846. 一手顺子
本题通过贪心算法结合计数器的方式解决了如何将手中的牌重新排列成连续组的问题。通过统计牌的数量并按顺序检查每个连续的组,确保每个牌都能正确地参与组的构建,从而完成牌的重新排列。
2025-05-31 01:00:00
201
原创 842. 将数组拆分成斐波那契序列
本题考察了对回溯算法的掌握,以及对字符串解析、整数处理等细节的把控。通过合理的剪枝(如前导零、超出 int 范围、预测值过大)可以显著提升算法效率。由于其明确的递归结构和层层验证逻辑,非常适合面试时展示对回溯算法的掌握程度。
2025-05-31 00:30:00
120
原创 840. 矩阵中的幻方
是一个填入1~9 不重复数字的 3x3 矩阵;每行、每列、两条对角线上的数字之和都必须相等;对于 1~9 的幻方,这个和固定为 15。二维数组的遍历与子矩阵判断幻方的数学性质集合去重与边界判断技巧它属于 LeetCode 中等偏简单的模拟题,非常适合用来锻炼代码的规范性和判断逻辑。
2025-05-31 00:15:00
398
原创 本地部署Qwen2.5-VL-7B完整指南(含显卡配置、模型下载与Gradio可视化)
本教程覆盖了 Qwen2.5-VL 模型从下载到部署的完整流程,适用于视觉+语言多模态推理的研究与应用。部署完成后即可通过 Gradio WebUI 实现图文对话、多模态问答等功能。如需更高性能或推理能力,可尝试部署或模型,推荐配置≥80GB 显存。魔搭社区。
2025-05-31 00:00:00
208
原创 838. 推多米诺
本题通过模拟多米诺骨牌倒下的过程,能够让我们更好地理解 BFS 算法的应用。通过队列的广度优先遍历,我们可以确保每个骨牌倒下的时间顺序,并且高效地解决了多个方向的相互作用问题。该方法不仅解决了问题,还能在大输入情况下保持良好的性能。
2025-05-30 03:30:00
570
原创 837. 新 21 点
本题的核心在于通过动态规划计算概率,并利用滚动窗口优化计算过程。通过将问题拆解为小问题并逐步求解,我们能够高效地计算从0分开始,得分不超过 NN 的概率。这种方法不仅高效而且通用,能够适应不同输入大小和参数变化。希望本篇博客对你理解这个问题的解决方法有所帮助。如果你有任何问题或优化建议,欢迎在评论区留言交流!
2025-05-30 03:15:00
383
原创 835. 图像重叠
通过暴力搜索所有可能的平移位置,我们可以有效地计算出两个矩阵在平移后的最大重叠区域。这种解法虽然简单直观,但在 n 较大时,可能面临性能问题。对于更大的矩阵,可能需要采用更加高效的算法或优化方法来进一步提高性能。
2025-05-30 03:00:00
678
原创 833. 字符串中的查找与替换
这道题考察了对字符串操作的理解与实现能力,特别是同步替换操作的实现技巧。通过将替换操作抽象为“映射”并延迟执行,我们成功地避免了索引错乱的问题。方法简洁且高效,适合在实际工程中处理文本替换类问题。
2025-05-30 02:45:00
1389
原创 831. 隐藏个人信息
这道题是字符串处理的典型题目,考查的不是算法的深度,而是对字符串格式、细节和规则的精确掌握。在实际开发中,数据脱敏处理也经常出现,如用户信息保护、日志审计、数据导出等场景。判断类型(是否是邮箱)分别格式化处理(替换规则)就能轻松拿下本题!💬 如果你喜欢这篇文章,欢迎留言讨论或分享你的其他解法!如需更复杂的数据脱敏处理(如身份证、银行卡等),也可以在评论区提出,我们可以一起探讨!
2025-05-30 02:30:00
586
原创 825. 适龄的朋友
本问题通过优化方法有效地减少了计算的复杂度,从暴力的 O(n^2) 优化到 O(n log n)。利用排序和双指针,我们可以高效地处理大规模数据,避免了超时问题。对于类似的社交网络或年龄筛选问题,双指针和排序常常能提供一个非常有效的解决方案。
2025-05-30 02:00:00
322
原创 823. 带因子的二叉树
这道题通过动态规划结合双指针的方法,有效地解决了如何通过数组中的因子构建满足特定条件的二叉树的问题。通过合适的状态转移和去重,我们可以避免不必要的重复计算,提升效率。整体时间复杂度为 O(n^2),适合解决中等规模的输入问题。
2025-05-30 01:45:00
463
原创 822. 翻转卡片游戏
本问题通过遍历卡片的正面和背面数字,利用集合去除不符合条件的数字,最终找出符合要求的最小背面数字。通过优化遍历的顺序和避免重复判断,代码实现简洁且高效,时间复杂度和空间复杂度都在可接受范围内。这种方法的优势在于其清晰的逻辑和高效的执行,是解决此类问题的一种常见策略。
2025-05-30 01:30:00
483
原创 820. 单词的压缩编码
通过对这个问题的深入分析,我们不仅了解了如何通过字符串的后缀重叠来优化编码字符串的长度,还学会了如何利用集合的数据结构高效去除冗余部分。这种方法不仅具备良好的时间和空间复杂度,还能适应多种输入情况。通过这种优化策略,我们能够实现最小编码字符串的高效计算。
2025-05-30 01:15:00
472
原创 817. 链表组件
题目中的组件有着特殊的定义:它是一段链表,且该段链表上的节点值必须全部包含在列表nums中。这段链表必须是连续的,换句话说,一旦链表中的某个节点值不在nums中,当前的组件就结束,新的组件会从下一个在nums中的节点开始。为了准确计算链表中组件的数量,我们需要遍历整个链表并判断每个节点是否属于一个组件。如果节点的值在nums中,并且它是一个新的组件的开始,我们就增加组件计数。如果节点的值不在nums中,我们就结束当前组件,直到遇到下一个在nums中的节点。通过将nums。
2025-05-30 01:00:00
501
原创 816. 模糊坐标
通过对问题的拆解和分析,我们设计了一个合理的解决方案,利用字符串的拆分和有效性检查,成功地解决了题目要求。尽管时间复杂度相对较高,但对于实际应用而言,这个解法足够高效且易于理解。
2025-05-30 00:45:00
504
原创 814. 二叉树剪枝
通过递归遍历二叉树,我们能够高效地修剪掉不包含1的子树。递归的方法简洁且直观,通过自底向上的处理方式,保证了每个节点的子树都被正确修剪。时间复杂度为 O(n),空间复杂度在最坏情况下为 O(n),在平衡二叉树情况下为 O(log n)。这种方法对于处理类似的二叉树修剪问题非常高效,并且能够很好地应对大规模的树结构。
2025-05-30 00:30:00
959
原创 813. 最大平均值和的分组
在优化过程中,我们利用递归和记忆化避免了重复计算,进一步提高了算法的效率。个非空子数组,每个子数组内的元素是连续的。子数组的平均值是该子数组所有元素和除以子数组的长度。题目要求的分数是通过将数组划分成多个子数组来实现的,每个子数组内的平均值是其所有元素之和除以子数组的长度。然后,使用前缀和来快速计算子数组的和,得到该子数组的平均值,并根据前面的状态。在这篇博客中,我们将深入探讨一个典型的动态规划问题:如何将一个给定的数组。最终的目标是求出这些子数组的平均值之和的最大值。,这样可以快速计算任意子数组的和。
2025-05-30 00:15:00
433
原创 811. 子域名访问计数
这道题目考察了如何高效地处理域名和子域名的分解、累加计数等操作。通过使用来存储每个子域名的访问次数,可以简化累加过程。利用域名的结构,我们可以方便地生成所有子域名并更新其访问次数。这种方法简洁高效,能够解决类似的计数和分组问题。
2025-05-30 00:00:00
351
原创 809. 情感丰富的文字
本题的核心是判断一个查询单词是否可以通过“扩展”操作转化为目标字符串S。扩展操作允许我们在字母组中加入更多的相同字符,前提是该字母组的长度必须大于等于 3。关键在于如何对比目标字符串和查询字符串的字母组结构。通过这道题,我们展示了如何通过“分组”方法有效地解决字符串匹配问题。通过精确地定义字母组和扩展规则,我们能够判断哪些查询单词可以通过扩展变为目标字符串。在处理类似问题时,利用分组和规则化的方式通常可以简化问题的复杂度,并提高代码的可读性和效率。
2025-05-29 03:30:00
710
原创 808. 分汤
这道题虽然看似是概率问题,但本质上是状态转移问题,适合用动态规划建模。通过单位压缩 + 边界剪枝 + 缓存加速,可以快速得到符合精度要求的解。
2025-05-29 03:15:00
707
原创 807. 保持城市天际线
这道题是 LeetCode 的经典问题之一(第 807 题),测试我们对二维数组处理、约束条件理解以及优化思维的能力。重点在于识别出不能改变的值(天际线)以及在不改变这些值的前提下,如何最大化结果。这种“最大化但受限”的问题,在算法竞赛和面试中非常常见,熟练掌握这类问题的建模方式对于提升算法水平非常有帮助。📌 你是否遇到过类似的问题?或者有什么更优雅的思路?欢迎留言讨论!
2025-05-29 03:00:00
423
原创 802. 找到最终的安全状态
根据题目描述,安全节点是指从该节点出发的所有路径都能够最终到达终端节点。如果一个节点到达终端节点或者通过路径可以到达终端节点,那么它是安全的。通过使用深度优先搜索和反向思维,我们可以高效地找到所有的安全节点。这个方法通过标记所有能到达终端节点的节点,避免了不必要的重复计算,并且具有较高的时间和空间效率。
2025-05-29 02:45:00
483
原创 799. 香槟塔
这个问题通过模拟香槟的倒入和流动过程,实现了一个动态规划的解决方案。每个杯子的香槟量由上一层的香槟量决定,通过不断地将溢出的香槟分配到下一层的左右两个杯子中,最终求得查询位置的香槟量。这个方法不仅解决了流动问题,还能够处理较大的输入规模,时间和空间复杂度都能接受。
2025-05-29 02:30:00
539
原创 797. 所有可能的路径
通过深度优先搜索(DFS),我们能够非常清晰地找到所有从源节点到目标节点的路径。此解法能够很好地解决问题,代码简洁易懂,适用于小规模图。对于大规模图的处理,可能需要考虑优化策略以减少计算复杂度。
2025-05-29 02:15:00
756
原创 795. 区间子数组个数
通过滑动窗口和计数方法,我们成功地将问题的时间复杂度从 O(n³) 降低到 O(n),使得解决方案更加高效。这个方法有效地解决了较大数组输入的超时问题,并且代码更加简洁易懂。如果你对算法优化或者滑动窗口的使用有兴趣,建议深入了解其在实际问题中的应用,滑动窗口技术在许多类似问题中都有广泛的应用。
2025-05-29 02:00:00
1032
原创 794. 有效的井字游戏
通过上述分析,我们提出了一个高效且简洁的解决方案来验证井字棋状态的合法性。该方法利用简单的规则检查和对棋盘状态的分析,能够在常数时间内判断棋盘是否为一个合法的游戏状态。这种方法适用于所有井字棋相关的问题,具有极高的实用性和执行效率。,它表示一个井字棋(Tic-Tac-Toe)游戏的棋盘,棋盘大小为。,其中每个元素可能是字符。
2025-05-29 01:45:00
667
原创 792. 匹配子序列的单词数
一个字符串w是另一个字符串s的子序列,如果你可以通过删除s中的一些字符(可以是 0 个或多个),而不改变剩余字符的相对顺序,得到字符串w。例如,字符串ace是字符串abcde的子序列,因为通过从abcde中删除b和d,剩下的字符顺序正好是ace。通过预处理字符串s并使用二分查找,我们能够高效地判断一个单词是否是另一个字符串的子序列。这个方法利用哈希表存储字符位置,并通过二分查找来避免逐个遍历,提高了效率。对于大规模数据集,这种方法相较于暴力方法更具优势,能够显著提高性能。
2025-05-29 01:30:00
479
原创 791. 自定义字符串排序
给定两个字符串order和s。order中的所有字母都是唯一的,并且是按照某种自定义顺序进行排列的。我们需要对字符串s进行字符置换,使其符合字符串order中的排序规则。更具体地说,如果字符x在order中出现在字符y之前,那么在排列后的字符串中,x也应该出现在y之前。对于order中没有出现的字符,它们在排序后的字符串中可以处于任意位置。要求返回一个满足上述规则的字符串。本题要求对一个字符串s进行自定义排序,保持字符在另一个字符串order中的相对顺序。
2025-05-29 01:15:00
776
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人