Day 1:开始前的准备

缘起

各位好~我是一个软件工程师,追求每年都要有不一样的进步,今年追求的是把自己的基底在打的更稳,之前也没机会来认真刷题,刷LeetCode就是在练习对演算法及资料结构的熟悉度,而演算法跟资料结构就是每个工程师重要的基底。另外也给自己一些不一样的挑战,原本一开始是想用熟悉的语言来刷题,不过最後想趁这个机会应该去熟悉一个不熟的语言,於是最後在这过程中我邂逅了适合AI领域且在今年已经挤进TIOBE第二名的Python。

https://ithelp.ithome.com.tw/upload/images/20210915/20141336N7bBNNEhTy.png
截图来自2021年8月份的TIOBE语言排行


学习重点及目标

本系列文重点在刷LeetCode解题思维,是演算法及资料结构的入门文章。

30天的目标

  • 刷LeetCode的解题方法
  • 基本的演算法及资料结构

适合什麽人来看?

  • 需要有一些写程序的概念
  • 想开始刷题的夥伴
  • 想开始追求演算法及资料结构的夥伴

本系列文过程重点在分享这些题目的解题方法及思维,会在过程中去解释这些资料及逻辑是怎麽跑的,目标是在这三十天结束後能在看完题目的当下,脑中可以去想像模拟出这些资料流向及这些逻辑的运作过程,也让脑中可以想到哪些题目可以用哪些演算法策略或是资料结构来解题。


刷题前的第一步

接下来的每一天我会选择一个我认为适合的题目来练习,会依照主题把一些基本的演算法及资料结构主题都走过一次,所以基本上都会以Easy的题目为主,每个主题看状况选择1~3题,从这些题目带出观念,让过程有一步一步往前的感觉,这边先分享我个人平常选题的方法。

平常的活动范围大概就会在Problems这个页面跟刷题画面了,在这个页面上主要在做的事情就是选题。
https://ithelp.ithome.com.tw/upload/images/20210915/20141336BA8Ldpp4Jp.png

我通常会有目标性的去选择题目,不会随机挑题目,例如我今天想练习Binary Search Tree那我就会直接以这个当Tag来找寻我要的题目,所以进来後第一步我就会点Tags开始找我要的目标。
https://ithelp.ithome.com.tw/upload/images/20210915/20141336O4VxPwfrLu.png
再来第二步我会先开启小齿轮,勾选Show topic tags,这时候在每个题目下面就会出现这个题目相关的主题Tags,在一开始练习的时候我都会尽量选择主题数量较少的题目来练习,这样可以帮助自己在思考解题时的方向。
https://ithelp.ithome.com.tw/upload/images/20210915/20141336LwW2Dp6DFY.png

最後如果有需要会再调整Difficulty,依照你想要练习的难度来选择,我个人都会从Easy开始,所以我会直接选择Easy。
https://ithelp.ithome.com.tw/upload/images/20210915/20141336ifyY5fdIeE.png

以上大概就是我的选题方法,如果过程自己想找一些题目来练习可以参考这个方法,不过如果是已经有目标题目想练习像是跟着本系列文直接走的话,也可以直接在搜寻框打上题号找目标即可,如下图。
https://ithelp.ithome.com.tw/upload/images/20210915/20141336j3LTpbszX6.png

另外补充一下,这个页面上题目列表右侧有一个区块是你的刷题数量,如下图。
https://ithelp.ithome.com.tw/upload/images/20210915/20141336rCPV3mYmM1.png

也可以看看,自己前进的感觉,让自己增加些成就感。非常建议,自己在刷题时不要为了冲刷题数硬刷,可以先知道有哪些演算法及资料结构以後,再来刷会让你更有方法的去解题,也因为这样本系列文在刷每个题目时,会尽量带出这个题目相关的演算法或资料结构的观念。


希望您今天能了解到...

  1. 本系列文目标
  2. 自己练习刷题时的选题方式

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

Next:414. Third Maximum Number


<<:  [Day 15] epoll

>>:  Day15. 用Blue Prism放榜,紧张时刻-BP Choice Stage选择阶段

D30 - 用 Swift 和公开资讯,打造投资理财的 Apps { 台股申购功能扩充,算出价差 }

这是第三十天!!! 到目前为止的范例程序码就在这个 repo https://github.com/...

[Day 26] 建立table

先到laravel专案找到环境变数档(.env) DB_CONNECTION=mysql DB_HO...

增加 App 下载量必备的 ASO 工具

场景与需求 APP跟网页一样,要被下载,最容易的办法就是要取得流量大的关键字的上位排名,也就是要做S...

[DAY20] 用 Azure Machine Learning SDK 建立 Dataset

DAY20 用 Azure Machine Learning SDK 建立 Dataset 大家还记...

Day 16 Flask 前端

本来前端应该要更早点讲的,不过 Flask 的前端有了传入的值的话,可以有更多的操作,所以就放到这边...