- 一直都有很多读者说,想让我用 框架思维 讲一讲基本的排序算法,我觉得确实得讲讲,毕竟学习任何东西都讲求一个融会贯通,只有对其本质进行比较深刻的理解,才能运用自如。本文就先讲归并排序,给一套代码模板,然后讲讲它在算法问题中的应用。阅读本文前我希望你读过前文 手把手刷二叉树(纲领篇)。我在 手把手刷二叉树(第一期) 讲二叉树的时候,提了一嘴归并排序,说归并排序就是二叉树的后序遍历,当时就有很多读... 一直都有很多读者说,想让我用 框架思维 讲一讲基本的排序算法,我觉得确实得讲讲,毕竟学习任何东西都讲求一个融会贯通,只有对其本质进行比较深刻的理解,才能运用自如。本文就先讲归并排序,给一套代码模板,然后讲讲它在算法问题中的应用。阅读本文前我希望你读过前文 手把手刷二叉树(纲领篇)。我在 手把手刷二叉树(第一期) 讲二叉树的时候,提了一嘴归并排序,说归并排序就是二叉树的后序遍历,当时就有很多读...
- 接前文 手把手带你刷二叉树(第一期)和 手把手带你刷二叉树(第二期),本文继续来刷二叉树。从前两篇文章的阅读量来看,大家还是能够通过二叉树学习到 框架思维 的。但还是有不少读者有一些问题,比如如何判断我们应该用前序还是中序还是后序遍历的框架?那么本文就针对这个问题,不贪多,给你掰开揉碎只讲一道题。还是那句话,根据题意,思考一个二叉树节点需要做什么,到底用什么遍历顺序就清楚了。看题,这是力扣第... 接前文 手把手带你刷二叉树(第一期)和 手把手带你刷二叉树(第二期),本文继续来刷二叉树。从前两篇文章的阅读量来看,大家还是能够通过二叉树学习到 框架思维 的。但还是有不少读者有一些问题,比如如何判断我们应该用前序还是中序还是后序遍历的框架?那么本文就针对这个问题,不贪多,给你掰开揉碎只讲一道题。还是那句话,根据题意,思考一个二叉树节点需要做什么,到底用什么遍历顺序就清楚了。看题,这是力扣第...
- 读完本文,可以去力扣解决如下题目:297. 二叉树的序列化和反序列化(困难)PS:刷题插件 集成了手把手刷二叉树功能,按照公式和套路讲解了 150 道二叉树题目,可手把手带你刷完二叉树分类的题目,迅速掌握递归思维。本文是承接 东哥带你刷二叉树(纲领篇) 的第三篇文章,前文 东哥带你刷二叉树(构造篇) 带你学习了二叉树构造技巧,本文加大难度,让你对二叉树同时进行「序列化」和「反序列化」。要说序... 读完本文,可以去力扣解决如下题目:297. 二叉树的序列化和反序列化(困难)PS:刷题插件 集成了手把手刷二叉树功能,按照公式和套路讲解了 150 道二叉树题目,可手把手带你刷完二叉树分类的题目,迅速掌握递归思维。本文是承接 东哥带你刷二叉树(纲领篇) 的第三篇文章,前文 东哥带你刷二叉树(构造篇) 带你学习了二叉树构造技巧,本文加大难度,让你对二叉树同时进行「序列化」和「反序列化」。要说序...
- 读完本文,可以去力扣解决如下题目:654. 最大二叉树(中等)105. 从前序与中序遍历序列构造二叉树(中等)106. 从中序与后序遍历序列构造二叉树(中等)889. 根据前序和后序遍历构造二叉树(中等)PS:刷题插件 集成了手把手刷二叉树功能,按照公式和套路讲解了 150 道二叉树题目,可手把手带你刷完二叉树分类的题目,迅速掌握递归思维。本文是承接 东哥带你刷二叉树(纲领篇) 的第二篇文章... 读完本文,可以去力扣解决如下题目:654. 最大二叉树(中等)105. 从前序与中序遍历序列构造二叉树(中等)106. 从中序与后序遍历序列构造二叉树(中等)889. 根据前序和后序遍历构造二叉树(中等)PS:刷题插件 集成了手把手刷二叉树功能,按照公式和套路讲解了 150 道二叉树题目,可手把手带你刷完二叉树分类的题目,迅速掌握递归思维。本文是承接 东哥带你刷二叉树(纲领篇) 的第二篇文章...
- 读完本文,可以去力扣解决如下题目:226. 翻转二叉树(简单)114. 二叉树展开为链表(中等)116. 填充每个节点的下一个右侧节点指针(中等)PS:刷题插件 集成了手把手刷二叉树功能,按照公式和套路讲解了 150 道二叉树题目,可手把手带你刷完二叉树分类的题目,迅速掌握递归思维。本文承接 东哥带你刷二叉树(纲领篇),先复述一下前文总结的二叉树解题总纲:二叉树解题的思维模式分两类:1、是否... 读完本文,可以去力扣解决如下题目:226. 翻转二叉树(简单)114. 二叉树展开为链表(中等)116. 填充每个节点的下一个右侧节点指针(中等)PS:刷题插件 集成了手把手刷二叉树功能,按照公式和套路讲解了 150 道二叉树题目,可手把手带你刷完二叉树分类的题目,迅速掌握递归思维。本文承接 东哥带你刷二叉树(纲领篇),先复述一下前文总结的二叉树解题总纲:二叉树解题的思维模式分两类:1、是否...
- 读完本文,可以去力扣解决如下题目:104. 二叉树的最大深度(简单)543. 二叉树的直径(简单)144. 二叉树的前序遍历(简单)PS:刷题插件 集成了手把手刷二叉树功能,按照公式和套路讲解了 150 道二叉树题目,可手把手带你刷完二叉树分类的题目,迅速掌握递归思维。公众号历史文章的整个脉络都是按照 学习数据结构和算法的框架思维 提出的框架来构建的,其中着重强调了二叉树题目的重要性。我刷了... 读完本文,可以去力扣解决如下题目:104. 二叉树的最大深度(简单)543. 二叉树的直径(简单)144. 二叉树的前序遍历(简单)PS:刷题插件 集成了手把手刷二叉树功能,按照公式和套路讲解了 150 道二叉树题目,可手把手带你刷完二叉树分类的题目,迅速掌握递归思维。公众号历史文章的整个脉络都是按照 学习数据结构和算法的框架思维 提出的框架来构建的,其中着重强调了二叉树题目的重要性。我刷了...
- 读完本文,你可以去力扣解决如下题目:第 316 题「去除重复字母」,难度 Hard 第 1081 题「不同字符的最小子序列」,难度 Medium关于去重算法,应该没什么难度,往哈希集合里面塞不就行了么?最多给你加点限制,问你怎么给有序数组原地去重,这个我们旧文 如何高效地给有序数组/链表去重 讲过。本文讲的问题应该是去重相关算法中难度最大的了,把这个问题搞懂,就再也不用怕数组去重问题了。这是... 读完本文,你可以去力扣解决如下题目:第 316 题「去除重复字母」,难度 Hard 第 1081 题「不同字符的最小子序列」,难度 Medium关于去重算法,应该没什么难度,往哈希集合里面塞不就行了么?最多给你加点限制,问你怎么给有序数组原地去重,这个我们旧文 如何高效地给有序数组/链表去重 讲过。本文讲的问题应该是去重相关算法中难度最大的了,把这个问题搞懂,就再也不用怕数组去重问题了。这是...
- 这是力扣第 380 题,看下题目:就是说就是让我们实现如下一个类:class RandomizedSet { /** 如果 val 不存在集合中,则插入并返回 true,否则直接返回 false */ public boolean insert(int val) {} /** 如果 val 在集合中,则删除并返回 true,否则直接返回 false */ public... 这是力扣第 380 题,看下题目:就是说就是让我们实现如下一个类:class RandomizedSet { /** 如果 val 不存在集合中,则插入并返回 true,否则直接返回 false */ public boolean insert(int val) {} /** 如果 val 在集合中,则删除并返回 true,否则直接返回 false */ public...
- 读完本文,可以去力扣解决如下题目:528. 按权重随机选择(中等)写这篇的文章的原因是玩 LOL 手游。我有个朋友抱怨说打排位匹配的队友太菜了,我就说我打排位觉得队友都挺行的啊?我经常躺赢。朋友意味深长地说了句:一般隐藏分比较高的玩家,排位如果排不到实力相当的队友,就会排到一些菜狗。嗯?我想了几秒钟感觉这小伙子不对劲,他意思是说我隐藏分低,还是说我就是那条菜狗?我立马要求和他开黑打一把,证明... 读完本文,可以去力扣解决如下题目:528. 按权重随机选择(中等)写这篇的文章的原因是玩 LOL 手游。我有个朋友抱怨说打排位匹配的队友太菜了,我就说我打排位觉得队友都挺行的啊?我经常躺赢。朋友意味深长地说了句:一般隐藏分比较高的玩家,排位如果排不到实力相当的队友,就会排到一些菜狗。嗯?我想了几秒钟感觉这小伙子不对劲,他意思是说我隐藏分低,还是说我就是那条菜狗?我立马要求和他开黑打一把,证明...
- 本文是以前的一篇《二分查找详解》的修订版,在力扣上获得近 600 点赞,恐怕是全站最高题解了吧。这篇增加了很多新内容,而且将三种二分形式以一个框架统一起来了,以不变应万变,你遇到啥问题直接改两行就完事儿了。为此我还特意作了首诗,可以说无敌的存在,建议收藏。先给大家讲个笑话乐呵一下:有一天阿东到图书馆借了 N 本书,出图书馆的时候,警报响了,于是保安把阿东拦下,要检查一下哪本书没有登记出借。阿... 本文是以前的一篇《二分查找详解》的修订版,在力扣上获得近 600 点赞,恐怕是全站最高题解了吧。这篇增加了很多新内容,而且将三种二分形式以一个框架统一起来了,以不变应万变,你遇到啥问题直接改两行就完事儿了。为此我还特意作了首诗,可以说无敌的存在,建议收藏。先给大家讲个笑话乐呵一下:有一天阿东到图书馆借了 N 本书,出图书馆的时候,警报响了,于是保安把阿东拦下,要检查一下哪本书没有登记出借。阿...
- 读完本文,可以去力扣解决如下题目:28. 实现 strStr()(简单)187. 重复的DNA序列(中等)经常有读者留言,请我讲讲那些比较经典的算法,我觉得有这个必要,主要有以下原因:1、经典算法之所以经典,一定是因为有独特新颖的设计思想,那当然要带大家学习一波。2、我会尽量从最简单、最基本的算法切入,带你亲手推导出来这些经典算法的设计思想,自然流畅地写出最终解法。一方面消除大多数人对算法的... 读完本文,可以去力扣解决如下题目:28. 实现 strStr()(简单)187. 重复的DNA序列(中等)经常有读者留言,请我讲讲那些比较经典的算法,我觉得有这个必要,主要有以下原因:1、经典算法之所以经典,一定是因为有独特新颖的设计思想,那当然要带大家学习一波。2、我会尽量从最简单、最基本的算法切入,带你亲手推导出来这些经典算法的设计思想,自然流畅地写出最终解法。一方面消除大多数人对算法的...
- 在线学习网站:https://labuladong.github.io/algo/读完本文,可以去力扣解决如下题目:76. 最小覆盖子串(困难)567. 字符串的排列(中等)438. 找到字符串中所有字母异位词(中等)3. 无重复字符的最长子串(中等)鉴于前文 二分搜索框架详解 的那首《二分搜索升天词》很受好评,并在民间广为流传,成为安睡助眠的一剂良方,今天在滑动窗口算法框架中,我再次编写一... 在线学习网站:https://labuladong.github.io/algo/读完本文,可以去力扣解决如下题目:76. 最小覆盖子串(困难)567. 字符串的排列(中等)438. 找到字符串中所有字母异位词(中等)3. 无重复字符的最长子串(中等)鉴于前文 二分搜索框架详解 的那首《二分搜索升天词》很受好评,并在民间广为流传,成为安睡助眠的一剂良方,今天在滑动窗口算法框架中,我再次编写一...
- 读完本文,可以去力扣解决如下题目:48. 旋转图像(中等)54. 螺旋矩阵(中等)59. 螺旋矩阵 II(中等)有不少读者说,看过很多公众号历史文章之后掌握了框架思维,可以解决大部分有套路框架可循的题目。但是框架思维也不是万能的,有一些特定技巧呢,属于会者不难,难者不会的类型,只能通过多刷题进行总结和积累。那么本文我分享一些巧妙的二维数组的花式操作,你只要有个印象,以后遇到类似题目就不会懵圈... 读完本文,可以去力扣解决如下题目:48. 旋转图像(中等)54. 螺旋矩阵(中等)59. 螺旋矩阵 II(中等)有不少读者说,看过很多公众号历史文章之后掌握了框架思维,可以解决大部分有套路框架可循的题目。但是框架思维也不是万能的,有一些特定技巧呢,属于会者不难,难者不会的类型,只能通过多刷题进行总结和积累。那么本文我分享一些巧妙的二维数组的花式操作,你只要有个印象,以后遇到类似题目就不会懵圈...
- 读完本文,可以去力扣解决如下题目:370. 区间加法(中等)1109. 航班预订统计(中等)1094. 拼车(中等)PS:这是一年前发布的 论那些小而美的算法技巧:差分数组/前缀和,我优化并添加了很多内容,重新发一遍。前文说前缀和主要适用的场景是原始数组不会被修改的情况下,频繁查询某个区间的累加和。这里简单介绍一下前缀和,核心代码就是下面这段:class PrefixSum { // ... 读完本文,可以去力扣解决如下题目:370. 区间加法(中等)1109. 航班预订统计(中等)1094. 拼车(中等)PS:这是一年前发布的 论那些小而美的算法技巧:差分数组/前缀和,我优化并添加了很多内容,重新发一遍。前文说前缀和主要适用的场景是原始数组不会被修改的情况下,频繁查询某个区间的累加和。这里简单介绍一下前缀和,核心代码就是下面这段:class PrefixSum { // ...
- 读完本文,可以去力扣解决如下题目:303. 区域和检索 - 数组不可变(中等)304. 二维区域和检索 - 矩阵不可变(中等)560. 和为K的子数组(中等)PS:这是两年前发布的 前缀和技巧:解决子数组问题,我优化并添加了很多内容,这里重新发一遍。前缀和技巧适用于快速、频繁地计算一个索引区间内的元素之和。一维数组中的前缀和先看一道例题,力扣第 303 题「区域和检索 - 数组不可变」,让你... 读完本文,可以去力扣解决如下题目:303. 区域和检索 - 数组不可变(中等)304. 二维区域和检索 - 矩阵不可变(中等)560. 和为K的子数组(中等)PS:这是两年前发布的 前缀和技巧:解决子数组问题,我优化并添加了很多内容,这里重新发一遍。前缀和技巧适用于快速、频繁地计算一个索引区间内的元素之和。一维数组中的前缀和先看一道例题,力扣第 303 题「区域和检索 - 数组不可变」,让你...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签