最近发现自己编程基本功还是太弱,要给自己设个挑战,刷题是一个很好的方式。
之前曾经刷过一部分,隔了两年之后,再次看到自己做过的题目,发现又不会了。
原因无外乎如下,一是忘记了,二是原来也不会,当时是参考别人的答案,并没有完全掌握。
所以,还是要慢慢的刷,确保每道题做过了,都要掌握。
还看到了两派刷题风格:
“龟系”刷法的精髓就是每个题目都做干净。不满足于一种解法,各种解法都写一写。这种流派适合不太急于准备算法面试的小伙伴,追求算法的干净优雅。
“兔系“刷法的精髓是暴力,按照标签来刷,使用固定套路来刷。
每个标签内部可以按照 Easy 、Medium、Hard 的顺序做,算法练习是一个系统工程,不要一开始就追求难题,先熟悉熟悉套路,循序渐进的去做,后面所谓的难题也就不在话下。
一般来说,BAT 等大厂的算法面试题基本上都是 Medium 级别及以下,并希望面试者能在 20 分钟以内给出一个「相对正确」的回答。
每一道算法题得解法都有很多种,并不是说你没有给出完美解或者最优解你就是错的。
“正确” 本身是一个相对概念。
在算法面试或者平时的算法练习时,如果没有头绪,可以尝试使用暴力解法。首先要提供思路,然后提供你准备怎么解决
先实现功能再去优化。Done is better than perfect 。
几个注意事项:
做好总结
一定要做好总结,特别是当没有解出题来,没有思路的时候,一定要通过结束阶段的总结来反思犯了什么错误。解出来了也一定要总结题目的特点,题目中哪些要素是解出该题的关键。不做总结的话,花掉的时间所得到的收获通常只有 50% 左右。
做好总结,让每道题都有最大的收获。一个月之后自己的状态应该会有很大变化。
我之前做过的,现在看起来又不会,应该就是总结做的不好,以后没做一道题目出来,就总结一下自己的思路,自己的做法,和别人精妙的做法。
刷题是很痛苦的事情,但是,痛苦才能让你成长,真的。一遍一遍的刷,多刷一题就多掌握一题,你总会比别人更强一点。
网友评论