0%

算法集训营第二期|报告老板,我已出舱感觉良好

这周学习的是搜索,大概有回溯、深度优先搜索、广度优先搜索。

开营前一周,自己学过一段时间的回溯,排列、组合的那一套逻辑,所以第一二天的题目做起来起来还算是比较熟悉,之前是看着题解边抄边理解(那时卡在js引用地址导致传值不正确上好久),现在是自己独立思考(卡在下标没有动态获取那里好久);深搜和广搜只是了解了,并没有深入去学习——就像新闻联播里天天听到俄罗斯警告乌克兰不要加入“北约”组织,我却连“北约”涉及哪几个国家都不知道——之前一直觉得自己“很懂”二叉树的层序遍历,这周做到第四、五天的题目,思维就有点被冲击到了,自己很清楚的知道这题279. 完全平方数就是考察的层序遍历,可就是循环超出时间,太残酷了。

说几个自己还蛮喜欢的题目。

一是”回溯类”,51. N 皇后,算是自己“独立”做出来的吧,判断条件那里还是查阅资料后自己通过分析、思考写下来的。当时草草的测试了测试用例“4”,没问题!稳稳点击提交,不通过。靠肉眼看错误的答案,然后自己手画了下五皇后的位置,惊奇的发现,错误的排列中有两个皇后的位置分别在棋盘的顶左上方,和顶右下方,这也算在一条斜线上吗?毕竟我的底色是上天赋予的,只在罗恩帮助哈利取得钥匙那里见过国际象棋的玩法,自己哪里知道这玩儿和中国象棋一样,“将”“帅”只要在一条线上并且线上没有其他棋子,就算作“将军”。搜了搜如何判断两个坐标在一条斜线上的方法,当然只要是“高级”的玩法,总绕不开数学,我无意摧残数学,但总被数学摧残,照着帖子里的判断思路写出了过滤不合适的皇后斜线排列的逻辑,稳稳点击提交,通过。这瞬间非常开心,希望和你们一起分享这种快乐。不过要是六十四皇后分布,按照我写的算法的时间复杂度,估计早超时了。

一是“深广搜类”,200. 岛屿数量,这个题目我原本以为这种类型的套路自己想明白了,实际上昨日竞赛里的求岛屿之间的最短距离的题告诉我,不,小子你还差得远呢。大致看了下题解,大概是深搜和广搜的结合,毕竟自己用dfs先找到题目要的两座岛屿包含的坐标,然后再暴力双重循环去找哪两个坐标之间的距离最小的这种方式,被无情的“超时”,这是一类还未被自己征服的题型,与诸君共勉。

新年快到了,回想着这几周,还是有点小遗憾的,好像就是一直在刷题,偷懒,刷题,不求甚解,继续刷题,继续不求甚解中循环,这个集训营,自己好像什么都还没有做,就快结束了。张士豪说“留下什么,我们就会变成什么样的大人”,多遗憾呀,真想和大家继续这样一起学习,一起刷题,一起开心的问问题…不过力扣有周赛双周赛嘛,还是可以继续沿着课程的知识点去重新做题,继续发散,沿着物质无限可分,万物皆可微积分的道路,继续匍匐前行。

原文地址:《算法集训营第二期| 学习二叉树》 2021-12-26