Hi,大家好,我是小林,也是 TalkGo 算法之美第三期的主要负责人。经过一个月的运行,TalkGo 算法之美第三期算是圆满结束啦。
TalkGo 算法之美主要是为了让大家在学习算法的时候可以有一个交流分享的平台。
我们现在已经举办了三期活动,在前两期我们主要是以押金报名,并以打卡的形式来运行,但是效果并不是很好。
所以我们在思考最本质的出发点之后,我们就将这个活动改为算法专题,并在 TalkGo 算法之美 - Go 夜读 上进行题解交流,我们还在每次专题结束后增加了一个线上比赛的活动,现目前参赛是不收取任何费用的,而且还有机会获得奖励。
一、关于本期选题
本期主题:树。
之所以选择树,是因为树够经典,题型也够多,且对于学算法的人来说,树是绝对绕不开的一个数据结构。在选题方面,我的主要关注点在于题目够不够经典,以及题型覆盖范围。另外,由于需要加上附加题,所以在选附加题的时候,我会去根据题解的多少去判断这道题目是否足够经典(题解多说明出现的频率高)。为了选出这些题目,树的大部分题我都做了。当然,树的题目也很多,我也没办法全部做完。
在选题方面,吸取前面两期的经验,难度会由简单且经典(如树的遍历)慢慢过度到难度比较高且但也算经典(如线段树)的题型上去。其实除了极少数大神动不动手撕 Hard,大多数人中等难度的题目写出来就差不多了,而且大多数面试题难度也就到中等。所以选题的时候我尽量避免选偏难偏怪的题目,这样可以给成员一定的缓冲,不至于一上来就容易放弃。另外,我会将一些基础性的题目放到前面,比如树的遍历,因为树的很多题目会在树的遍历的基础上来进行操作。最后一周,会放一些比较难,但是又很经典的题型,比如字典树,线段树,对于这种题型个人感觉学会基础的构造就可以了。
以下是本期所出的题目,需要回顾的直接拿着题号到 LeetCode 上搜索题号即可。如果需要看合集请 点这。
主题 | LeetCode 题号 |
---|---|
树的构造 | 108,95 |
树的遍历 —— 前中后序 | 94,144,145 |
树的遍历 —— 层次遍历 | 102,103,429 |
树的路径和计算 | 129,124,437 |
二叉搜索树 | 1382,面试题 04.05,538 |
巧用遍历 | 199,662 |
回溯 | 面试题 04.09 |
字典树 | 211 |
线段树 | 307 |
二、关于比赛
本期算法之美在最后一周举行了线上比赛。活动内容以及比赛形式,可以在 这里 看到。
本次比赛的优胜者是 吴俊伟,一口气 A 出了四道题,不得不说太强了!!!
这里附上吴俊伟给的 题解。
下面我简单讲一下这四道题思路,至于代码,直接看吴俊伟给的题解就行。
第一题,替换隐藏数字得到的最晚时间。是一道简单题,直接写几个 if 判断下各种情况就好了。
第二题,满足三条件之一需改变的最少字符数。中等题,用两个数组去保存两个字符串中每个字符出现的次数。再利用这两个数组,根据题目给的三种情况,计算出最小改变次数即可。
第三题,找出第 K 大的异或坐标值。中等题,直接两个 for 暴力求出矩阵中每个元素所对应的异或坐标值,并插入一个数组中,最后对这个数组进行排序即可。
第四题,放置盒子。贪心算法,还要加点数学技巧。
三、负责人寄语
改为专题方式之后,整个活跃度比之前好不少,当然也有可能是人员基数变大了的原因。不管怎样,我们的这个专栏算是真正运作起来了。
只要你愿意参加,群内的各位大佬,如吴俊伟,bill,彬彬魔坊,木头等等,都会非常积极的给予讨论和解答。
另外,TalkGo OJ 平台也在搭建中,有意愿且有能力的小伙伴也可以申请加入,一起打造属于自己的算法交流平台。
四、接下来的规划
- 时间:2020.02.01-2020.02.28 每逢一三五早上九点公布题目(春节休息一周)
- 主题:数组
- 线上讨论会:以投票形式决定要不要开线上讨论会