Leetcode快速入门
文章平均质量分 91
从概念出发,系统讲解概念以及之间的关联,并通过实战带领同学们掌握最核心的几大模块:数组、链表、堆栈、队列、二叉树、图,最终帮助大家拿到满意的offer。
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
herosunly
985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得多项AI顶级比赛的Top名次,其中包括阿里云天池安全恶意程序检测第一名,科大讯飞恶意软件分类挑战赛第一名,CCF信息分类比赛比赛第二名,CCF家族分类第四名,科大讯飞阿尔茨海默综合症预测挑战赛第四名,科大讯飞事件抽取挑战赛第七名,Datacon大数据安全分析比赛第五名。授权多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法行业就业。希望和大家一起成长进步。
展开
-
Leetcode快速入门之开宗明义: 掌握概念和学习语法
1. 为什么要学习基本概念2. 学习编程语法2.1 为什么要学习C++和Java2.2 C++基本语法2.2.1 程序基本结构2.2.2 静态数组2.2.3 动态数组vector2.2.4 字符串string2.2.5 结构体struct2.2.6 链表ListNode2.2.7 哈希表unordered_map2.2.8 集合unordered_set2.2.9 队列queue2.2.10 栈stack2.2.11 优先队列2.2.12 其他常用API2.2.13 C++常原创 2021-06-09 20:54:37 · 13287 阅读 · 15 评论 -
Leetcode快速入门之第二节课: 使用双指针+区间法解决数组问题
文章目录1. 问题引入2. 问题分析3. 双指针+区间法 引入1. 问题引入 在学习Leetcode中,最忌讳的学习方法是:东一榔头西一棒槌。具体来说,就是今天做一道数组的题,明天做一道链表的题,后天再做一道二叉树的题目。如此一来,就把学习变成了纯粹了题海战术。而最有效的方法是通过归纳和分类,逐一攻克每个子类别。这是因为,在逐一攻克每个子类别的过程中,必然会深入思考一类题目的共同点,所以就更容易学到其中的精髓之处。 今天咱们要学习的内容使用双指针+区间法解决数组问题,在开始之前,先把题目链接列举一原创 2021-06-15 20:19:09 · 15218 阅读 · 19 评论 -
Leetcode快速入门之第三节课: 分治算法
如果大家认真学习了上节课的内容,自行编码完成了课程中的题目,那么恭喜你已经迈出了坚实的一步。如果没有自行编码完成作业,只是看了几遍文章,请一定要自行练习,否则收效甚微。话不多说,咱们继续今天的课程。拆分+组合是解决问题常用的思维方式。上节课的双指针+区间法主要是通过循环体现了拆分和组合。其中循环中的每一轮体现了拆分后的每个子问题,而组合已经被包含在循环中了。那么是否有不通过循环来拆分问题的算法呢?答案就是咱们今天要学习的分治算法。那么分治算法究竟是原创 2021-06-19 11:25:07 · 16092 阅读 · 15 评论 -
Leetcode快速入门之第四节课: 区间法边界值分析
1. 区间法核心思想介绍最近有好几个付费读者表示,课程内容基本上学会了,但是区间边界值如何正确设置成为了一个难题。为了帮助同学们在学习初期早点避开同样的大坑,所以特意加上了这节内容。如果同学们有其他问题,也欢迎在评论区留言。咱们先来回忆一下区间法。在开始之前,首先应当确定问题可以通过区间法来解决。具体来说,要把原有数据划分成若干个区间。每个区间是相互独立的,而区间内的数据满足一定的共性。使用区间法解决问题的步骤为:一、确立正确区间,二、设置好区间的初始值,三、确定循环执行的条件(或者终止条件),四原创 2021-06-25 13:50:10 · 16706 阅读 · 14 评论 -
Leetcode快速入门之第五节课: 使用多指针+区间法解决链表问题
文章目录1. 问题引入2. 链表基础概念3. Leetcode实战之删除元素3.1 Leetcode 83题:删除链表中的重复元素3.2 Leetcode 82题:删除链表中的重复元素II1. 问题引入 之前在第二节课我们讲解了使用双指针解决数组问题。自己一直比较推崇的是学习方法之一是举一反三,那不禁就有人要问,那能否用来解决其他问题呢?比如与数组并驾齐驱的链表呢。答案是同样好用! 那么问题来了,如何使用双指针(多指针)来攻克Leetcode中的链表题目呢?2. 链表基础概念 在链表中,我原创 2021-06-30 20:24:12 · 17323 阅读 · 21 评论 -
Leetcode快速入门之第六节课: 利用栈和队列实现树的遍历(前序、中序、后序、层次)
文章目录1. 前言2. 树的深度优先搜索2.1 前序遍历2.2 中序遍历2.3 后序遍历1. 前言 和几个算法交流群的朋友交流,发现面试中经常考察非递归遍历树。具体来说即为以下四种遍历方式:前序遍历中序遍历后序遍历层次遍历 甚为悲惨的是,其中一位朋友因为没有答上而被面试官叫停了面试。所以为了帮助大家拿到满意的offer,所以特意写下了该篇博客。2. 树的深度优先搜索 利用栈模拟递归是实现非递归方式遍历树的核心方法之一。那该如何进行实现呢?首先要明确栈的特点是:先进后出。栈里面存放原创 2021-07-08 07:53:10 · 10882 阅读 · 39 评论 -
Leetcode快速入门之第七节课: 节省时空复杂度的巧妙技巧
1. 节省空间复杂度1.1 负数的巧妙应用2. 节省时间复杂度2.1 快慢指针1. 节省空间复杂度1.1 负数的巧妙应用 剑指offer第三题:找出数组中重复的数字。具体要求如下: 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。原创 2021-07-28 22:19:23 · 2372 阅读 · 8 评论 -
Leetcode快速入门之第八节课: 掌握链表数据移动的小诀窍
文章目录1. 对角线法则1.1 左对角线法则(第一个)1.2 右对角线法则1.3 左对角线法则(第二个)2. 更多题目2.1 206题反转链表2.2 92题反转链表IIII2.3 25题K 个一组翻转链表1. 对角线法则 什么是对角线法则呢?以交换两个整型变量为例,代码如下所示:void swap(int &a, int &b) { int t = a; a = b; b = t;} 想必大家对上述代码早已烂熟于心。但如果静下心来观察下,就会发现两个对角线法则。为什么要原创 2021-10-26 11:15:54 · 17632 阅读 · 6 评论