算法题基本上刷过就忘

2020-08-12 07:22:12 +08:00
 howencilx

大家都是怎么刷的?

6218 次点击
所在节点    程序员
33 条回复
andrewpsy
2020-08-12 07:36:57 +08:00
和世界上提高大部分事物的方法没什么区别:次数加深度。

对于经典题,我一般是实现多解,明白不同解法的利弊。比如有些动态规划的题可以用贪心算法扫一遍就有解了,我非得把它的 top-down 和 bottom-up 也搞一下。

你在一道题上花的时间越多就越难忘,捷径是留给比我们聪明的人的。
loading
2020-08-12 07:50:23 +08:00
应聘也就抱佛脚。
平时使用只要知道对应算法优劣和场景,需要的时候能想起来名字就行了。

现在生活中我也就二分和普通冒泡了…
howencilx
2020-08-12 08:00:38 +08:00
@andrewpsy 感谢建议
cassyfar
2020-08-12 08:09:48 +08:00
可以读下算法导论。干刷 leetcode 基本等于背答案,其实得不到太多解题思路。
richzhu
2020-08-12 08:27:07 +08:00
我觉着二楼说的没错呀,只要知道哪个算法适用于哪个场景,需要的时候能想起来就好了,至于刷题,纯属是为了面试
metaquant
2020-08-12 08:31:31 +08:00
没刷过 leetcode,主要刷了 project euler,我自己的习惯是每做完一道题就写一个详细的思路分析,这样之后回顾起来能很快找到思路。另外,就是去搜集一下之前以前大神的解法,争取每道题的算法都做到最优,如果有多种解法,就把多种解法的思路都写下来。

有兴趣的话,可以看一下: https://metaquant.org/
TwoDogSon
2020-08-12 08:33:40 +08:00
最近外界刚需 开始刷题 先从简单的开始 找自信 然后再中等难度 我应试复习法 能 pass 就好 今天没做出来的 看题解理解会 明天独立完成一边
masker
2020-08-12 08:37:51 +08:00
不靠理解靠硬背吗
ericls
2020-08-12 08:53:29 +08:00
不要玩儿算法这个游戏
Accessing
2020-08-12 09:22:20 +08:00
会忘很正常,只有经常使用才不容易忘,尽量创造使用场景吧。
Accessing
2020-08-12 09:23:25 +08:00
如果不想使用,只想考试的话,那忘掉就忘掉,没有什么关系,下次考试之前再复习即可。
mathzhaoliang
2020-08-12 09:44:05 +08:00
@metaquant 我看了一下你的笔记,写的不错,能详细查资料写分析是很难得的了。

projecteuler 上的问题其实不太适合拿来练习算法,因为上面的问题大多数具有较深的数学背景,不懂得背后的数学,仅套用递归、分治、动态规划等常见算法得不出有效解来的。

举个简单的例子:你的置顶文章里面的整数分划问题。你那个递归其实跟斐波那契递归一样,效率很低,指数级爆炸。

实际上 p(n) 有一个 pentagon recurrence 关系,用那个来做递归计算效率高很多。
另外输出所有分划是有一个简单的线性遍历方法的,空间复杂度是 n+1,时间复杂度是 p(n)。
kidlj
2020-08-12 09:47:15 +08:00
编程不是智力游戏,是熟练运用工具。
leiuu
2020-08-12 10:16:46 +08:00
@kidlj 赞 刻意练习
wenb1
2020-08-12 10:57:41 +08:00
同感
fadaixiaohai
2020-08-12 11:10:08 +08:00
记录下自己的刷题思路,下次浏览一下,立马就记起来了
EreeBay
2020-08-12 11:25:38 +08:00
没办法,更多时候就是为了应付面试
bear2000
2020-08-12 11:40:34 +08:00
很多模式化的题,场景相似的,一般都能很快磕出解法,实在不行也能硬解,这些题一般都有很强规律,也容易触类旁通。

但是一些没有规律的,技巧性很强的题目,想出解法很难,就算写出来了也很快会忘,这很正常,总之,面向面试刷题就行了。
hello2060
2020-08-12 11:46:26 +08:00
@cassyfar 算法导论不如 leetcode, 光是基本的数据结构 array stack list queue priority queue 算法导论里就很大一部分了,动态规划就三个例子,然后就是面试里不算多的图。算法导论就是介绍一个东西,这是啥,有啥用,复杂度是多少 (花了很多时间在推导复杂度上了)。leetcode 则需要你反应过来我需要用这个,这两个不是一个层次的东西。当然没有算法导论里的那些基础,leetcode 也没法刷。。
lewis89
2020-08-12 12:02:02 +08:00
背模板代码.. 然后往里面套 没啥好办法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/697546

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX