y总:
1、一般在学算法的时候最好先理解思路,再看代码。如果从代码去猜思路会感觉特别难,而且也会走很多弯路。学习算法的方法对了,就不难了,加油!
2、dfs没有经典模板,重要的是顺序。
3、一道算法题里百分之七八十都是模板。
4、y总,您是每天工作到4点,还是4点起来工作啊。。 牛逼的人总是比自己更努力。答:一般是4点起来工作。
5、一般来说,算法都一个简单的模板,但算法书写的算法实现都贼长还贼难用,主要是写书的人都是上个世纪的,现在这些算法都有一个简单的实现。(个人理解:时代更新了,算法也更新了,看书看新书)
6、出现sf段错误,用删代码法,找错误的代码。
7、最后悔的并不是做错了什么,而是错过了什么。
8、如果数组越界了,什么错误都可能发生,并不是光段错误,tle(超时)等错误也是可能的。
9、学算法的时候建议先看视频理解思路,再看代码,而不要从代码猜思路,这样很容易猜偏、猜错或者少猜到一部分思路。
10、组合等式的证明,从实际意义出发,构造一个实际的问题,再证明左边和右边是一个问题。(那两边的组合数必然是相等的)
11、凡是想不明白的时候,就分情况讨论,一般都能想明白。
12、dp问题的优化,都是对代码做等价变形。
13、背包问题不要从方程去推含义,而是想用朴素的思路相通,再做等价变形,这样就比较容易理解了。
14、动态规划其实就是优化后的暴力搜索。暴力搜索是枚举每一种方案,动态规划是用一个数表示一堆方案的某种属性。这就是我对动态规划的一种感性的理解。
15、递归想不明白时候,就画一下递归搜索树。acwing821题
16、做题不要对着最终形式思考,要重点看中间步骤,不要跳步骤。比如老师让大家从1楼到3楼,如果你直接跳上去是很难的,但走楼梯就每个人都可以做到了。
17、光理解是没有用的,一定要多写几遍才能记住,比如,你学会游泳几年都不会忘,背过的单词,吃完饭就忘了,就是这个道理。所以学习不一定是脑力劳动,大部分还是体力劳动,要多写,多动手才行。
18、学一个算法,最好是从整体上看算法的思路是什么,而不是一味的去模拟它,尤其是动态规划的算法,模拟时会发现数据是很乱的。
19、大家不要来关注那0.01%的限制,要抓住那个99.9%的真正的重点。
20、大家要尽可能把写代码的时间压短,如果你做到了,那么你代码能力就已经很高了。
21、在将如何学pygame包时:先想需要什么功能,再根据需要的功能去找实现的api函数,千万不要试图去背pygame所有功能函数,因为有上千个,而我们需要的却很少。(题外:这算不算一种优化算法?古人云:握要而治详。)
名人
刘德华:闯荡歌坛,拿到大奖,虽然风光,背后却是无数个永不言弃的练习。他说:“以前唱歌我以为没有空间(天赋的意思),但是呢原来是有空间的,需要你自己去慢慢的找到这个空间。”
其他
1、思路比统一更重要。(指如果思路造成了代码模板的不统一,以思路为主)
2、为什么大量练习是有效的。计算机知识点多,这一点很像学语言的语法,作为汉语母语的我们,很容易分别“不在”和不再的区别,而我们并没有学过专门的语法,经过大量的类似语句的读和写,自然就产生语感,同理,面对大量计算机语法,要做大量的练习来产生语感。
3、解题如梳理乱丝,首先是对已知条件的加工和转化,挖掘对解题有用的隐藏已知条件。
4、如果一个到题有7-8成懂了,还有几句关键看不太懂,这时要抄写几遍代码。很多时候,代码抄熟了,不懂的也明白了。高效刷题感悟。
要是用C来实现算法,那就必须贼长贼长。