算法学习心得
labuladong
算法的本质是穷举
部分我们所了解的算法是这样的,至于特殊的部分算法偏数学或脑筋急转弯类的需要一定的观察、规律、原理才能解决
穷举也不简单:无遗漏、无冗余
- 遗漏,会直接导致答案出错
- 冗余,会拖慢算法的运行速度
当你看到一道算法题,可以从这两个维度去思考:
- 如何穷举?即无遗漏地穷举所有可能解
- 如何聪明地穷举?即避免所有冗余的计算,消耗尽可能少的资源求出答案
不同类型的题目,难点不同,有的难在「如何穷举」上(递归类),有的难在「如何聪明地穷举」上(非递归算法类,本质是优化算法的时间、空间复杂度)
正确的刷题方式应该是刷一道题能获得刷十道题的效果,不然力扣现在 2000 道题目,你都打算刷完么?
要有框架思维,学会提炼重点,一个算法技巧可以包装出一百道题,如果你能一眼看穿它的本质,那就没必要浪费时间刷了。同时,在做题的时候要思考,联想,进而培养举一反三的能力