算法
文章平均质量分 79
我劝天公重抖擞,不拘一格降人才
数据与后端架构提升之路
没人会把我们变的越来越好,时间也只是陪衬。支撑我们变的越来越好的是我们自己不断进阶的才华,修养,品行以及不断的反思和修正
展开
-
LeetCode1365之切披萨的方案数(相关话题:二维前缀和,动态规划)
该问题要求在给定的披萨上切割k-1次,使得每块至少包含一个苹果,计算满足条件的切割方案数。通过动态规划和前缀和技巧,我们能够高效地找到解决方案。原创 2024-02-07 16:44:36 · 651 阅读 · 2 评论 -
算法优化:LeetCode第122场双周赛解题策略与技巧
LeetCode第122场双周赛挑战,涵盖数组操作、排序与大小顶堆、延迟删除、滑动窗口。原创 2024-01-21 22:37:17 · 880 阅读 · 0 评论 -
LeetCode114二叉树展开为链表(相关话题:后序遍历)
本题要求将二叉树展开为单链表,保持先序遍历顺序。解法一通过递归展开左右子树,然后调整指针顺序;解法二利用pre记录前驱节点,依次处理右子树、左子树,最后更新前驱节点。两种方法均在原地完成,空间复杂度为O(1)。原创 2024-01-14 20:57:19 · 436 阅读 · 0 评论 -
第380场周赛挑战:二分,数位dp和KMP算法的综合运用
二分,数位dp和KMP算法的综合运用原创 2024-01-14 17:02:37 · 541 阅读 · 0 评论 -
LeetCode264. 丑数 II(相关话题:多重指针动态规划)
借助dp的填充过程来理解代码原创 2024-01-13 22:58:49 · 573 阅读 · 0 评论 -
第121场双周赛题解:揭秘算法竞赛中的数位挑战与解题策略
本文深入剖析了算法竞赛中常见的三个问题:寻找大于等于顺序前缀和的最小缺失整数、计算使数组异或和等于给定值的最少操作次数,以及统计强大整数的数量。通过详细的代码实现和解题思路,揭示了这些算法问题的内在逻辑和高效解决方案。原创 2024-01-07 02:02:29 · 1014 阅读 · 1 评论 -
解决背包衍生题目:单词拆分和分割等和子集--动态规划方式深度呈现
我们探索了如何使用动态规划(DP)解决两个常见编程难题。“单词拆分”问题中,通过构建一个可达性数组来检查是否可以用字典中单词拼接出给定字符串。另一方面,“分割等和子集”问题需要找出数组能否分成两个总和相同的子集,涉及计算总和的一半并使用DP来确定是否有可能形成该子集总和。这两个演练揭示了DP在解决具有重叠子问题和最优子结构特点的问题方面的强大能力原创 2024-01-02 23:59:20 · 965 阅读 · 1 评论 -
LeetCode74二分搜索优化:二维矩阵中的高效查找策略
本文介绍了如何使用二分搜索算法优化二维矩阵中的查找问题。通过将二维矩阵视为一维有序数组,利用矩阵的特定属性(每行递增,每行首元素大于前一行末元素),我们可以在虚拟的一维数组上应用二分查找。这种方法相较于传统的逐行逐列搜索,显著提高了查找效率。文章提供了详细的代码实现和算法分析,展示了二分搜索在矩阵查找问题中的应用原创 2024-01-01 20:35:04 · 1226 阅读 · 1 评论 -
LeetCode994腐烂的橘子(相关话题:矩阵dfs和bfs)
DFS通常用于探索或搜索路径问题,例如在迷宫中寻找路径,而更适合用BFS来搜索最短路径原创 2023-12-31 19:52:55 · 1254 阅读 · 1 评论 -
LeetCode二叉树路径和专题:最大路径和与路径总和计数的策略
文章介绍了二叉树路径总和三和二叉树中的最大路径和两个编程问题的解析,展示了深度优先搜索、前缀和优化和递归等方法的具体代码实现,方便读者理解和运用。原创 2023-12-31 00:34:11 · 1302 阅读 · 0 评论 -
一站式指南:第 377 场力扣周赛的终极题解
力扣周赛,需要老板思维原创 2023-12-24 16:16:48 · 1035 阅读 · 1 评论 -
LeetCode179最大数(相关话题:自定义排序器)
比较器的基本原理原创 2023-12-21 19:12:23 · 426 阅读 · 1 评论 -
LeetCode100123执行操作使频率分数最大(相关话题:滑动窗口,二分法,前缀和)
周赛要想拿名次至少刷满力扣的3000题原创 2023-12-17 18:18:01 · 458 阅读 · 0 评论 -
LeetCode2961双模幂运算(相关话题:快速幂)
速幂算法是一种高效计算幂运算的方法,尤其适用于大数的情况原创 2023-12-16 14:23:26 · 380 阅读 · 0 评论 -
LeetCode377之组合总和 Ⅳ(相关话筒:动态规划)
组合总和系列问题原创 2023-09-24 20:48:05 · 103 阅读 · 0 评论 -
LeetCode99之恢复二叉搜索树(相关话题:中序遍历)
常规的思路是中序遍历,检测出逆序节点就记录下来,那么如何检测逆序呢?需要在每次递归中保存当前节点的前驱节点。原创 2023-09-15 12:23:21 · 439 阅读 · 0 评论 -
LeetCode902最大为 N 的数字组合(相关话题:数位DP问题,递归遍历和减枝)
数位 DP:用来解决一类特定问题,这种问题比较好辨认,一般具有这几个特征:要求统计满足一定条件的数的数量(即,最终目的为计数);这些条件经过转化后可以使用「数位」的思想去理解和判断;输入会提供一个数字区间(有时也只提供上界)来作为统计的限制;上界很大(比如 10^{18}),暴力枚举验证会超时。原创 2023-09-24 22:00:41 · 219 阅读 · 0 评论 -
LeetCode147之对链表进行插入排序(相关话题:链表)
链表插入排序的思路与数组插入排序类似,但是链表的特点是不支持随机访问,所以我们需要对算法进行一定的调整原创 2023-09-09 22:39:51 · 275 阅读 · 0 评论 -
LeetCode863. 二叉树中所有距离为 K 的结点(相关话题:深度遍历,广度遍历)
计算它到目标结点target的距离,然后调用递归函数dfs(target, prev, dist)。向上遍历时要保证当前节点的左右子节点不是前驱节点,向下遍历时要保证当前节点的父节点不是前驱节点原创 2023-08-21 00:47:03 · 255 阅读 · 0 评论 -
LeetCode之团灭Dijkstra算法
地图中的导航功能就是基于迪杰斯特拉算法(Dijkstra)实现的,力扣周赛中经常出现基于这个算法的变种题原创 2023-06-09 00:48:13 · 690 阅读 · 0 评论 -
LeetCode018之四数之和(相关话题:双指针)
三数之和思路类似原创 2023-05-02 21:57:09 · 114 阅读 · 0 评论 -
LeetCode279之完全平方数(相关话题:动态规划,四平方和定理)
f[i]表示最少需要多少个数的平方来表示整数 i原创 2023-05-02 21:12:37 · 708 阅读 · 0 评论 -
LeetCode037之解数独(相关话题:回溯法)
本题的难点在于 line[i][x−1],column[j][x−1]以及 block[⌊i/3⌋][⌊j/3⌋][x−1]这个数据结构含义的定义原创 2023-04-17 08:57:53 · 450 阅读 · 0 评论 -
LeetCode395至少有 K 个重复字符的最长子串
把大问题拆解成了小问题,恰好有函数可以解决小问题,所以直接用这个函数。由于这个函数正好是本身,所以我们把此现象叫做递归。小问题是原因,递归是结果。而递归函数到底怎么一层层展开与终止的,不要用大脑去想,这是计算机干的事。我们只用把递归函数当做一个能解决问题的黑箱就够了,把更多的注意力放在拆解子问题、递归终止条件、递归函数的正确性上来原创 2023-04-10 13:25:55 · 386 阅读 · 0 评论 -
LeetCode之团灭异或问题
常用异或操作总结原创 2023-03-27 10:34:58 · 726 阅读 · 0 评论 -
LeetCode2588之统计美丽子数组数目(相关话题:前缀异或和)
灵活运用同余定理原创 2023-03-16 12:09:22 · 413 阅读 · 0 评论 -
LeetCode134之加油站(相关话题:图形化思维)
图形化思维解决问题原创 2023-03-16 11:42:49 · 308 阅读 · 0 评论 -
LeetCode295之数据流的中位数(相关话题:优先队列)
获得中间数的想法,可以将数据分为左右两边,一边以最大堆的形式实现,可以快速获得左侧最大数, 另一边则以最小堆的形式实现原创 2023-03-08 10:05:57 · 467 阅读 · 0 评论 -
LeetCode096不同的二叉搜索树(相关话题:卡特兰数)
卡特兰数(Catalan number)是组合数学中一个常出现在各种计数问题中的数列。原创 2023-03-06 11:10:35 · 431 阅读 · 0 评论 -
LeetCode611之有效三角形的个数(相关话题:二分法,双指针)
二分法,双指针原创 2023-02-24 10:09:26 · 325 阅读 · 0 评论 -
LeetCode010之正则表达式匹配(相关话题:动态规划)
我们用 f[i]表示 s的前 i 个字符与 p 中的前 j个字符是否能够匹配原创 2023-02-23 11:38:55 · 406 阅读 · 0 评论 -
LeetCode之347前 K 个高频元素(相关话题:堆排序,桶排序)
堆排序,桶排序比较常规,还有一种方法是基于快速排序求解思路即使可以理解代码上的细节众多难以实现所以不做介绍,节省下宝贵的面试准备时间原创 2023-02-10 00:17:12 · 341 阅读 · 0 评论 -
LeetCode400之第 N 位数字(相关话题:寻找规律,数学思维)
简洁的代码可能蕴含更一般的规律,需要用具数字代入法去验证总结下次复用。一下子看不懂的题解需要在自己的大脑中形成自己的思考。原创 2023-01-31 09:59:52 · 460 阅读 · 0 评论 -
LeetCode011之盛最多水的容器(相关话题:双指针,逻辑分析)
若向内 移动长板指针j,水槽的短板 min(h[i],h[j])不变或变小,因此下个水槽的面积 一定变小 。原创 2023-01-30 00:59:05 · 179 阅读 · 0 评论 -
LeetCode042之接雨水(相关话题:动态规划,单调栈)
字节经典面试题接雨水:动态规划,单调栈原创 2023-01-30 00:40:18 · 336 阅读 · 0 评论 -
团灭LeetCode跳跃游戏(相关话题:贪心,BFS)
LeetCode1345.跳跃游戏 IV是周赛的一道hard题,需要仔细研究下,困难之所以必要,是因为“它们能触发编码和检索过程,从而支持学习、理解,以及记忆。然而,如果学习者没有相应的背景知识或技能来顺利处理困难,它们就会变成不合意的”原创 2023-01-19 10:14:41 · 1917 阅读 · 0 评论 -
力扣刷题(JAVA)常用数据结构总结
力扣刷题常用数据结构总结原创 2023-01-17 12:59:38 · 1339 阅读 · 0 评论 -
剑指 Offer 26树的子结构(相关话题:对称性递归,在线算法)
一般来说思维越奇特代码越简洁,官方题解一般代表了“最优代码”,普通的思维不一定可以马上领会,可以退而求其次再优化“思维”简化代码。原创 2023-01-10 20:05:24 · 376 阅读 · 0 评论 -
LeetCode091之解码方法(相关话题:动态规划)
1.暴力回溯会超时2.动态规划一下子想不到,还是要多刷题,面试前或有机会集中复习原创 2023-01-09 11:35:17 · 396 阅读 · 0 评论 -
LeetCode450之删除二叉搜索树中的节点(相关话题:二叉搜索树,删除)
二叉搜索树,删除原创 2023-01-04 16:50:54 · 605 阅读 · 0 评论