今天先跟大家分享下深入学习算法和不会算法的区别。
大家可以对照自己的团队,是不是很多团队都是接需求不做设计就干,搞到一半发现N多没想明白,推倒重来再重写大量代码,还美其名曰,需求这么紧,哪有时间做技术方案。
结论:加班 = 活该
学习算法的同学都有一个习惯:拿到题目,先思考,分析各种分支,复杂问题会先推导公式。
不信邪的童鞋,看下这道题如何做?看看自己10分钟能否搞定
尤其那些参加赛制为只要一个case不过就爆零的大神,通常在写代码之前把各种情况考虑清楚了,要不你多次提交虽然AC了,但会罚分,直接影响排名。
通常算法比赛的测试case都比较全,各种情况都考虑到,算法大神基本都一次AC。
算法好的同学写代码前除了把业务搞明白、都要考虑这个业务
这些都是日常的打比赛养成的习惯,已经揉到骨子里了。写出来的代码性能往往都非常非常高,
如果与不会算法同学相比,往往涉及算法的逻辑性能相差百倍不止。
很多刚开始接触算法比赛的同学最常出现:TLE,可大神们的代码优美,执行往往20ms以内搞定,
更何况平时不接触算法同学,涉及算法的逻辑,性能就可想而知了。
算法好同学往往学习能力非常强,注重自身技术能力精进。
比如涉及图搜索,常规的算法:DFS、BFS、Floyd、Dijkstra、Bellman-Ford、SPFA等多种实现方式。
每种实现方式各有优缺点,而这些也是一个中级算法工程师掌握的。
学习能力不强能掌握这么多算法吗?
兄弟,你整天增删改查怪谁啊。平凡的东西玩出不一样,那才叫本事,会算法就不同了,人家全搜索,你来半分搜索,继而动态规划,贪心策略来搞。
周围的同学向你投来仰慕的眼神,神气吧。
机会的精进一定要靠自己,别怨天尤人做怨妇了。