最近每天都在刷算法题,每天一两道,已经刷了接近一个月了,现在做一些题还是很多做不来,看题解也觉得不太好理解,总之就没啥正反馈,越做越不耐烦。唉,这到时候秋招可咋整。想问问各位有啥好的刷算法题的建议吗
1
boshan927 2020-05-11 13:40:02 +08:00 via iPhone
正常,别急,继续做。
|
2
freakxx 2020-05-11 13:42:21 +08:00
按类别去刷,效率比较高
没思路直接看题解,再自己整理思路继续做 还是撸不动就去看看一些别人讲解,或者补下知识 心态的话 - 当成是乐趣去做,没乐趣别勉强,容易整吐 - 硬上就当是面向工资编程 |
3
Nich0la5 2020-05-11 13:47:39 +08:00 via Android
先把算法相关的书看一遍呗,硬上太痛苦了
|
4
paoqi2048 2020-05-11 13:50:20 +08:00
这个急不来
|
5
hahaayaoyaoyao 2020-05-11 13:51:48 +08:00 via Android
什么难度,开始不要刷困难的
|
6
krystal9527 2020-05-11 15:14:04 +08:00
slow slow come
|
7
Simle100 2020-05-11 15:18:35 +08:00
实在想不出来的题目,可以跳出去呀。
|
8
WhoMercy 2020-05-11 15:20:49 +08:00
才一个月就不行了吗,我刷了一年都感觉懵懵懂懂。
要想速成,就可能会比较痛苦。 一天刷五道、八道,十分钟没思路就看高票题解,隔几天再来重来一遍,集中高频题型反复刷。 背思路、背套路。 |
9
darksword21 2020-05-11 15:21:08 +08:00
正常,我是按类别,做一些就会发现一些套路之类的,比如双指针这类的
|
10
jones2000 2020-05-11 15:50:41 +08:00
刷题都是纸上谈兵。 关键还是要代码经验,就算你不知道做什么,你直接在 git 上找几个好的开源的插件, 自己根据自己的理解重写一遍都比纯做题的好。
|
11
fkdog 2020-05-11 16:26:26 +08:00
先回忆一下自己以前上学时候的成绩如何?
算法题和物理数学刷题道理是一样的。 能通过刷题提升的往往是一类能举一反三、善于归纳总结的人。 如果自己没有这方面能力,无脑刷题的话怕是效率不会很高。 |
12
archxm 2020-05-11 17:40:04 +08:00
以前,互联网还不发达的时候,一些大佬会把自己想到的代码,好好地修饰优化一下,发到某本杂志上,每年,都会对这些算法进行评选,于是有了 ACM 。后来,互联网越来越发达,大家都去 csdn 啊,oschina 啊,这种地方讨论问题,然后那些杂志就越来越不行了。所以,算法本质上到底是啥?就是把一些常用的程序好好整理一下。
如果网上那些算法题,理解起来很费劲,你完全不用去做,浪费时间。 |
13
fishCatcher 2020-05-11 18:55:17 +08:00 via iPhone 1
正常,当你做了三四百之后会发现还是有很多 medium 做不出来,然后就开始自我怀疑。最后不得不总结出人脑工作原理:万物基于背诵。
|
14
chevalier 2020-05-11 19:07:58 +08:00 1
楼上说的对,本质上跟高考数学题差不多,对于普通人来说,这个题目不会做,原因只有一个,之前没见过这类题
|
15
hehheh 2020-05-11 19:17:44 +08:00
其实刷到 300 左右就能把大部分类型的题都刷过了,再往后基本都能写出来,偶尔有时候会 TLE
|
16
zooo 2020-05-11 19:22:00 +08:00
我刷了 20 到也能去面试。。
|
17
CoderGeek 2020-05-11 19:22:35 +08:00
这东西 写的多了就会了 像考试 233
|
19
V2todd 2020-05-11 20:47:42 +08:00 via Android
力扣 700 题,其他地方未统计,长年 AC 力扣周赛前三题,动态规划太难了,去年 9 月份两数之和都不会的人,以上
|
20
buffzty 2020-05-12 09:56:21 +08:00 1
你这个是正常的,创造那些算法的人花了几年几十年优化出的算法,你要是一看题目就能就解出来那你就是当代牛顿了.
我一般是先了解这个算法的概念. 然后尝试去写.写不出来看答案. 看懂答案后 再用手写一遍. 写同一类型的题目 写几次你就熟了. 我感觉死记硬背挺重要的 |
21
jones2000 2020-05-12 14:15:08 +08:00
@yazoox 就比如说吧, 你是学前端的,哪你可以看下 esprima 这类语法解析器的代码(这些代码量不大)+编译原理的书,然后自己尝试写一个, 在你动手写的过程中,就有遇到很多问题,一个一个解决,这比你刷题要来的有用。
|
22
MongkeMary 2020-05-27 06:47:06 +08:00
哈哈,我也曾经有同感啊。我是今年二月开始刷的,到现在刷了 500 多吧。中间也有一段时间特别没信心,觉得啥题都不会,但是慢慢熬过去了那个瓶颈期,后面就越来越好了。
我自己总结,不会做题有两种情况: 1. 题目背后的知识点不会 2. 知识点会,但是没有看出来这道题可以用这个知识点做 对于第一种情况,对于这两种情况,最好的方法都是“专题训练”。我是这么做专题训练的: 1. 每次针对性的选择一个知识点,比如我之前最怕的单调栈 /队列,先把背后的原理搞懂。这个阶段可以借助于教材,教程,博客,以及 LeetCode 的讨论区总结(这个是一个被低估的宝藏,里面很多人做了非常不错的总结) 2. 搞懂知识点后:找一个非常典型的题目,一定是那种一眼就看出考察知识点的题目来做。这个题目要精做,从最开始的简单的方法 brutal force 开始,一点点优化,最后用到刚学的知识点(单调栈)。 3. 然后最重要的来了,不要做完之后就跑了去下一题了。一定要仔细揣摩为什么这道题可以使用这个方法,用其他的方法不行吗?这个方法有什么独特的优势吗?这种优势有什么条件吗?比如题目如何改改之后,这个方法还是最好的吗?这些问题一定要想清楚,才能从根本上理解这个算法。 4. 再然后就是解决问题二了。如何办吗?还是“专题训练”。找大量类似的题目,先从容易识别的入手,慢慢过渡到不是那么容易的,再到隐藏很深的题目。看看都是什么情况下可以转化为此方法。 经过这几个阶段的练习,这个算法才算是基本算是掌握了。当然,人脑的特点就是,忘得快。所以,即使总结心得体会,后面没事常翻翻。常常是你想了半天也回忆不起来的东西,看看当时的笔记就瞬间清楚了。 希望我的经验对你有帮助,加油💪🏻 |
23
MongkeMary 2020-05-27 06:56:56 +08:00
@MongkeMary 还有一点忘记说了,“专题训练” 既是内容上的,更是时间上的。
内容上的,就是上个帖子,把类似的题目集中学习、揣摩、训练。这是按照 “知识点” 来划分,而不是大致的“类比”,比如 array, string... 这样的分类过于宽泛,很容易在练习过程中碰到不同的知识点,导致自信心不断受挫,本来可以学会的也搞不定了。集中火力仅供一个知识点,不仅敌人相对可控,自己也会有很多的信心,比较容易坚持下去。 时间上的“专题训练”是指,要抽出一定的时间,排除一切干扰,专心做这个事情。我们从小的学习就存在一个误区,所谓的每天一个单词,几年后你就是专八的词汇量。实际上,这样你永远也学不好英语。学习心得只是,一定要集中时间精力,在最短的时间内突破,然后你可以“每天一道题”这样保持手感。但是开始学习阶段,每天一道题绝对是大忌。 说到底,就是 “集中优势兵力,歼灭敌人有生力量”, 因为 “伤其十指不如断其一指”。切忌搞成了 “添油战术”。 |
24
supremacyxxxxx OP 这里统一回复一下,感谢各位给出的建议!
也希望自己能熬过这段时间。 |