Day 30:结束後的下一步

回顾 & 总结

今天是最後一天了,来回顾一下这些日子分享及学习的内容,虽然是写LeetCode的题目为主,但在过程中每天的题目是有选过主题的,一天一天都有更深入资料结构及演算法相关的内容,希望这些日子分享的内容除了解题外有带给各位夥伴资料结构及演算法的基本概念。

LeetCode

Day1:开始前的准备,提到了自己在 LeetCode 里面是如何去选择题目的。Day2 时也分享了平常在做题目时解题介面上会注意的几个地方。Day7 补充了题目说明中 Follow-up 的部份是给解题者额外更难的挑战,Day 13 时补充了 Tree 相关的题目如何使用 LeetCode 提供的 Tree Visualizer

Sorting

过程中的一开始,Day3 ~ Day4我们是从排序开始走的,这两天分享了 Selection SortInsertion Sort 两种基本排序,其实还有像 Bubble Sort 气泡排序法是没有提到的,但它的效率极差,有些题目实作时用这个方法还会超时,有兴趣也可以稍微去了解它的运作过程,另外在 Day25 分享 Divide and Conquer 时有提到另外一种排序方法 Merge Sort

Stack & Queue & Heap

之後我们进入了几种重要的资料结构题目,Day5 ~ Day9 我们从 StackQueueHeap 一连串资料结构分享,并且用 Stack 去实作 Queue、用 Queue 去实作 Stack,讲到 Heap 之後接着也带开始第一次接触到了跟 Tree 相关的内容,也因为这样我们进入了下一个重点主题 Tree。

Tree

Tree是很重要的观念,从 Day10 ~ Day12 开使除了分享 Tree 的实际长相外,提到了 Depth-First Search 中的PreorderInorderPostorder 三种 Traversal,在 Day 14 时也提到了 Breadth-First Search 中会看到的 Level-Order Traversal,到了 Day15 也做了一个 Traversal 的总结。Day16 ~ Day18 开始分享了一种有原则的树 Binary Search Tree

Algorithm

分享完 Tree 等等资料结构後,我们在 Day19 ~ Day26 开始接触了五种很常见的演算法 EnumerationBacktrackingGreedyDivide and ConquerDynamic Programming,我想在这个期间应该是最辛苦的一段时间,每种演算法都有它难理解的部份,实做题目时更是有复杂的逻辑在里面需要去想。

Bit

我想这个主题应该是个番外篇,在本系列文中我们也提到了 Bit 的概念,因为在过程中我们接触到了 Binary Watch 及 Bit 中 XOR 的逻辑运算,所以在 Day22 时也分享了 Bit 相关的基本概念。

Hash

走到了最後,我们在 Day27 ~ Day29 接触到了 Hash 相关的题目,从 Hash Function 的重点开始一直到 Hash Table 的使用及 Hash Table 与 Hash Function 之间是什麽关系都走过了,最终在 Day 29 找了一个小小的综合题去复习 Tree、Traversal、Hash 等等概念结束了本系列文的解题之旅。


下一步

希望走完这些日子,上面的回顾所提到的关键字看到都能对他有一个基本的想像。这个解题过程所碰到的 LeetCode 的题目都是 Easy 为主的题目,接下来对於这些主题,可以试着去找一些 Medium 的题目来刷,让自己更进一步的去理解这些主题,保持对这些题目的熟悉度,当然如果 Medium 玩的差不多也可以试着去挑战 Hard 的题目。

另外在资料结构与演算法相关的主题,也还有更多在这些日子里还没有碰到的,Ex. Graph、Red-Black Tree、String 中的 KMP 字串比对演算法等等,都是接下来可以去了解及学习的方向,当然这边也是举一些目前常听到的例子,还有更多值得去学习及了解的资料结构与演算法在後面。


结语

感谢铁人赛让我过了非常充实的三十天,我对这些主题不到非常专业,有些内容也没有表达的很好,但每整理一篇文章,我就对一个观念有更深入的了解,也在过程中培养自己写文章及整理思绪的能力,也要谢谢这些日子以来有花时间来看我文章的夥伴们,希望这些内容真的对大家有帮助,写文章有学习到、有帮助到人对我来说都是非常大的鼓励,接下来我也会继续努力学习,让自己有更多知识以後再分享给大家,谢谢各位。

若内容有什麽问题或建议欢迎一起交流:)
感谢您今天愿意花时间看完这篇文章~~~~

THE END


<<:  30天学会 Python-Day28: 选择档案

>>:  队列

android studio 30天学习笔记-day 13-介绍databinding BindingAdapter

BindingAdapter可以做一些自定义的属性,解决一些databinding在属性上的问题。 ...

Day#10 初始专案...again (+版本控制)

前言 原本的想法其实是希望可以写一个类似交友软件的app,但中途卡关,也觉得学得不够扎实,所以先写了...

Alpine Linux Porting (一点六?)

这是个工具半残时,debug会很惨烈的故事Orz 既上次想要搬迁到host来用qemu-user加快...

Day 0x1B - odoo addons 永丰金流开发(Part 2 - sinopac sdk... maybe)

*** 模组资料夹 payment_sinopac 以 "/" 来代表此资料夹 ...

# JS杂食-06--小实作-1: Star Calculator

参考资料1:MDN — the Mozilla Developer Network 参考资料2:0...